#1 배열 활용 #include <stdio.h> int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i < 5; i++) printf("grade[%d]=%d\n",i, grade[i]); return 0; } 2019-04-30
#2 배열 입력 활용 #include <stdio.h> #include <stdlib.h> #define SIZE 5 int main(void) { int i; int grade[SIZE]; for(i = 0; i < SIZE; i++) grade[i] = rand() % 100; printf("grade[%d]=%d\n", i, grade[i]); return 0; } 2019-04-30
#3 최소값 찾기 #include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE 10 int main(void) { int prices[SIZE] = { 0 }; int i, minimum; printf("---------------------------------------\n"); printf("1 2 3 4 5 6 7 8 9 10\n"); srand( (unsigned)time( NULL ) ); for(i = 0; i < SIZE; i++){ prices[i] = (rand()%100)+1; printf("%-3d ",prices[i]); } printf("\n\n"); 2019-04-30
#3 최소값 찾기 - 계속 minimum = prices[0]; for(i = 1; i < SIZE; i++) { if( prices[i] < minimum ) minimum = prices[i]; } printf("최소값은 %d입니다.\n", minimum); return 0; 2019-04-30
#4 배열 역순 출력 #include <stdio.h> #define SIZE 5 int main(void) { int data[SIZE]; int i; for(i = 0; i < SIZE; i++) // 정수를 입력받는 루프 { printf("정수를 입력하시오:"); scanf("%d", &data[i]); } for(i = SIZE - 1;i >= 0; i--) // 역순출력루프 printf("%d\n", data[i]); return 0; } 2019-04-30
#5 선택 정렬 #include <stdio.h> #define SIZE 10 int main(void) { int list[SIZE] = { 3, 2, 9, 7, 1, 4, 8, 0, 6, 5 }; int i, j, temp, least; for(i = 0; i < SIZE-1; i++) least = i; for(j = i + 1; j < SIZE; j++) if(list[j] < list[least]) least = j; temp = list[i]; list[i] = list[least]; list[least] = temp; } for(i = 0;i < SIZE; i++) printf("%d ", list[i]); printf("\n"); return 0; 2019-04-30
#6 순차탐색 #include <stdio.h> #define SIZE 10 int main(void) { int key, i; int list[SIZE] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; printf("탐색할 값을 입력하시오:"); scanf("%d", &key); for(i = 0; i < SIZE; i++) if(list[i] == key) printf("탐색 성공 인덱스= %d\n", i); printf("탐색 종료\n"); return 0; } 2019-04-30
#7 이진 탐색 #include <stdio.h> #define SIZE 16 int binary_search(int list[], int n, int key); int main(void) { int key; int grade[SIZE] = { 2,6,11,13,18,20,22,27,29,30,34,38,41,42,45,47 }; printf("탐색할 값을 입력하시오:"); scanf("%d", &key); printf("탐색 결과= %d\n", binary_search(grade, SIZE, key)); return 0; } 2019-04-30
#7 이진 탐색 - 계속 int binary_search(int list[], int n, int key) { int low, high, middle; low = 0; high = n-1; while( low <= high ){ // 아직 숫자들이 남아있으면 printf("[%d %d]\n", low, high); // 하한과 상한을 출력한다. middle = (low + high)/2; // 중간 위치를 계산한다. if( key == list[middle] ) // 일치하면 탐색 성공 return middle; else if( key > list[middle] )// 중간 원소보다 크다면 low = middle + 1; // 새로운 값으로 low 설정 else high = middle - 1; // 새로운 값으로 high 설정 } return -1; 2019-04-30
+ = - 심화 #1 다음 조건에 맞는 2차원배열 프로그램을 작성하시오. Int형 2차원 배열X(3*4)에 난수(0~100)를 입력 받는다. Int형 2차원 배열Y(3*4)에 난수(0~100)를 입력 받는다. 행렬(배열)의 합과 차를 계산하여 출력하시오 (X+Y, X-Y) + = - 2019-04-30
문제 #1 다음 조건에 맞는 정렬 프로그램을 작성하시오. Int형 1차원 배열X[20]에 난수(0~100)를 입력 받는다. 2019-04-30
문제 #2 다음 조건에 맞는 빈도수 계산 프로그램을 작성하시오. 0~9사이의 숫자를 입력 받고, 입력 받은 수의 빈도를 출력하시오. 종료 조건은 -1을 입력했을 때 정수 입력: 1 정수 입력: 2 정수 입력: 3 … 정수 입력: -1 빈도수 계산 결과 0 : 2번 1 : 5번 9 : 3번 2019-04-30
X = 문제 #3 다음 조건에 맞는 2차원배열 프로그램을 작성하시오. Int형 2차원 배열X(3*4)에 난수(0~100)를 입력 받는다. Int형 2차원 배열Y(4*3)에 난수(0~100)를 입력 받는다. 행렬(배열)의 곱을 계산하여 출력하시오 (X*Y) X = 2019-04-30
문제 #4 슬라이드 9에서, 반복문으로 작성된 이진탐색을 재귀함수 형태로 변경하 시오. 2019-04-30