U E D R , A S I H C RSS

새싹교실/2015/우리반/9주차



1. 참여자 명단


강사 홍성현 14학번 출석
학생 장해민 15학번 출석
이한용 출석


2. 수업

2.1. 진행

1. 장소 : 6층 PC실
2. 시간 : 5월 27일 2시 ~ 3시(수요일)

2.2. 내용

  • 2차원 배열 사용법

실습
1차원 배열을 통한 실습(sort, 자유롭게 값을 넣고 빼기, 소수 구하기, 짝수 구하기 복합)

3. 숙제

ppt로 올려준 내용 - 최대한 함수를 써라!

4. 후기

  • 욕심을 버리고 String이나 구조체 같이 진도를 더 나가지 않고 배열 사용법이라도 제대로 익혀서 보내기로 마음 먹었어요. - 홍성현
  • 우왕 프로그래밍 재미땅 - 장해민

5. 숙제제출

실습 때 완성 못한 내용 과제로 제출, 시험지 준 것 풀어오기, 평가표 작성

5.1. 장해민



#include "stdio.h"

void DeleteDuplicate(int*, int*, int*);
void DeleteEven(int*, int*, int*);
void DeletePrime(int*, int*, int*);
void print(int*, int);
void bubble(int*, int);
void add(int*, int*);

int main()
{
    int num[256], uqnum[256];
    int rcv, i, game;
    int count=0;
    
    printf("Type numbers except 0(type 0 at the end): ");
    for (i=0; i<256; i++){
        scanf("%d", &rcv);
        if (rcv==0)
            break;
        else {
            num[i]=rcv;
            count+=1;
        }
    }
    
    DeleteDuplicate(uqnum, num, &count);
    bubble(num, count);
    print(num, count);
    
    for (;;){
        //Choose a game
        printf("1. Add numbers\n2. Remove even numbers\n3. Remove prime numbers\n4. Exit\nGame number: ");
        scanf("%d", &game);
        printf("\n");
        if (game==4)
            break;
        else{
            switch (game)
            {
                case 1: printf("Type numbers you want to add except 0(type 0 at the end)\n: ");
                    add(num, &count);
                    break;
                case 2: printf("Remove even\n");
                    DeleteEven(uqnum, num, &count);
                    break;
                case 3: printf("Remove prime\n");
                    DeletePrime(uqnum, num, &count);
                    break;
            }
        }
        DeleteDuplicate(uqnum, num, &count);
        bubble(num, count);
        print(num, count);
    }

    return 0;
}

void print(int a[], int n)
{
    int i;
    printf("\nResult: ");
    for (i=0; i<n; i++){
        printf("%d ", a[i]);
    }
    if (n!=1)
        printf("(%d numbers)\n\n", n);
    else
        printf("(one number)\n\n");
}

void DeleteDuplicate(int a[], int b[], int *n)
{
    int h, i, j, k;
    int count=*n;
    
    for (h=0; h<256; h++){
        a[h]=0;
    }
    
    for (i=0; i<*n; i++){
        for (j=0; j<*n; j++){
            if (a[j]!=b[i]&&a[j]==0){
                a[j]=b[i];
                break;
            }
            if (a[j]==b[i]){
                count--;
                break;
            }
        }
    }
    *n=count;
    for (k=0; k<count; k++){
        b[k]=a[k];
    }
}

void DeleteEven(int a[], int b[], int *n)
{
    int h, i, j=0 ,k;
    int count=*n;
    
    for (h=0; h<*n; h++){
        a[h]=0;
    }
    
    for (i=0; i<*n; i++){
        if (b[i]%2!=0){
            a[j]=b[i];
            j++;
        }
        else
            count--;
    }
    *n=count;
    for (k=0; k<count; k++){
        b[k]=a[k];
    }
}

void DeletePrime(int a[], int b[], int *n)
{
    int h=0, i, j, k, l=0, count=0;
    int count2=*n;
    
    for (h=0; h<*n; h++){
        a[h]=0;
    }
    
    for (i=0; i<*n; i++){
        for (j=1; j<=b[i]; j++){
            if (b[i]%j==0)
                count++;
        }
        //1 or
        if (count==2){
            count2--;
            count=0;
        }
        else {
            a[l]=b[i];
            l++;
            count=0;
        }
    }
    *n=count2;
    for (k=0; k<count2; k++){
        b[k]=a[k];
    }
}

//Sort by size
void bubble(int a[], int n)
{
    int temp;
    int i, j;
    for (j=0; j<n; j++){
        for (i=0; i<n-1; i++){
            if (a[i]>=a[i+1]){
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
            }
        }
    }
}

void add(int a[], int *n)
{
    int i;
    int rcv;
    int count=*n;
    for (i=*n; i<256; i++){
        scanf("%d", &rcv);
        if (rcv==0)
            break;
        else {
            a[i]=rcv;
            count++;
        }
    }
    *n=count;
}


5.2. 이한용

/*
#include<stdio.h>
int i, j, t, count=0, arr[100];
void order_1();
void order_2();
void order_3();
int main()
{
	int num;
	while (1)
	{
	printf("1. 숫자 저장하기\n2. 짝수 제거하기\n3. 소수 제거하기\n");
	printf("어느 명령을 수행할까요?");
	scanf("%d", &num);
	printf("\n");
	
	if (num==1)
	{
		order_1();	
		printf("\n\n"); 
	}
	
	else if (num==2)
	{
		order_2();
		printf("\n\n"); 
	}
	
	else if (num==3)
	{
		order_3();
		printf("\n\n");
	}
	
	}
	return 0;
}

void order_1()
{
	printf("숫자를 하나씩 입력하세요.\n");
	for (i=count; i<100; i++)
	{
		scanf("%d", &arr[i]);
		count++;
		if (arr[i]==0)
		{
			count--;
			break;
		}
	}
	for (j=count-2; j>=0; j--)
	{
		for (i=0; i<=j; i++)
		{
			if(arr[i]>arr[i+1])
			{
				t=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=t;
			}
		}
	}
	for (i=0; i<count; i++)
	{
		if(arr[i]==arr[i+1])
		{
			for (j=i; j<count; j++)
			{
				arr[j]=arr[j+1];
			}
			i--;
			count--;
		}
	}
	
	printf("저장된 수 : ");
	for (i=0; i<count; i++)
	{
		printf("%d  ", arr[i]);
	}
}

void order_2()
{
	printf("짝수를 제거합니다.\n");
	for(i=0; i<count; i++)
	{
		if(arr[i]%2==0)
		{
			for (j=i; j<count; j++)
			{
				arr[j]=arr[j+1];
			}
			i--;
			count--;
		}
	}
	
	printf("저장된 수 : ");
	for (i=0; i<count; i++)
	{
		printf("%d  ", arr[i]);
	}
}

void order_3()
{
	printf("소수를 제거합니다.\n");
	for(i=0; i<count; i++)
	{
		t=0;
		if (arr[i]==1)
		{
			//아무것도 안함 
		}
		else if (arr[i]==2)
		{
			for (j=i; j<count; j++)
			{
				arr[j]=arr[j+1];
			}
			i--;
			count--;
		}
		else
		{
			for(j=2; j<arr[i]; j++)
			{
				if (arr[i]%j==0)
					t++;
			}
			if (t==0)
			{
				for (j=i; j<count; j++)
				{
					arr[j]=arr[j+1];
				}
				i--;
				count--;
			}
		}
	}
	
	printf("저장된 수 : ");
	for (i=0; i<count; i++)
	{
		printf("%d  ", arr[i]);
	}
}

*/
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2015-06-02 07:58:37
Processing time 0.0890 sec