q int grade 0 grade 1 grade 2

  • Slides: 27
Download presentation

예제: 여러 사람의 성적의 총점 계산 q 배열을 사용하지 않은 예 int grade 0,

예제: 여러 사람의 성적의 총점 계산 q 배열을 사용하지 않은 예 int grade 0, grade 1, grade 2, grade 3, grade 4, total; scanf("%d%d%d", &grade 0, &grade 1, &grade 2, &grade 3, &grade 4); total = grade 0 + grade 1 + grade 2 + grade 3 + grade 4; printf("총점 = %dn", total); 개별적 변수 선언 일반화된 프로그램 작성 곤란 q 배열을 사용한 예 int grade[5], total, i; for (i=0; i<5; i++) scanf("%d", &grade[i]); total = 0; for (i=0; i<5; i++) total = total + grade[i]; printf("총점 = %dn", total); /* 성적 입력 */ /* 총점 계산 */ /* 총점 출력 */ C 프로그래밍 4

예제(계속) #include <stdio. h> double average(double data[ ], int num); main() { int i;

예제(계속) #include <stdio. h> double average(double data[ ], int num); main() { int i; double number[10], avg; printf("Input 10 numbers: "); for (i=0; i<10; i++) /* 자료 입력 */ scanf("%lf", &number[i]); avg = average(number, 10); /* 배열 number의 값의 평균 계산 */ printf("average = %. 2 fn", avg); } C 프로그래밍 15

예제(계속) #include <stdio. h> int max_elem(int a[3][3]); main() { int b[3][3] = { 1,

예제(계속) #include <stdio. h> int max_elem(int a[3][3]); main() { int b[3][3] = { 1, 22, 13, 4, 5, 16, 7, 8, 9 }; printf("max element = %dn", max_elem(b); } 3 x 3 2차원 배열 이름 C 프로그래밍 17

예제: 배열 원소를 반대로 배치하기 void rev_copy(int d[ ], int s[ ], int n)

예제: 배열 원소를 반대로 배치하기 void rev_copy(int d[ ], int s[ ], int n) 0 1 2 { s 결과 저장용 배열 int from, to; for (from=0, to=n-1; from<n; from++, to--) d[to] = s[from]; d } 0 1 2 void reverse(int s[ ], int n) s { 인수로 받은 배열을 int front, rear; 반대로 배치함 int tmp; for (front=0, rear=n-1; front<n/2; front++, rear--) { tmp = s[front]; s[front] = s[rear]; s[rear] = tmp; } } C 프로그래밍 n-2 n-1 20

예제 (계속) #include <stdio. h> void print_array(int s[ ], int n); void rev_copy(int d[

예제 (계속) #include <stdio. h> void print_array(int s[ ], int n); void rev_copy(int d[ ], int s[ ], int n); void reverse(int s[ ], int n); main() { void print_array(int s[ ], int n) { int i; for (i=0; i<n; i++) printf("%d ", s[i]); printf("n"); } int a[5] = {1, 2, 3, 4, 5}; int b[5]; rev_copy(b, a, 5); print_array(b, 5); reverse(b, 5); print_array(b, 5); … 출력: 5 4 3 2 1 … 출력: 1 2 3 4 5 } C 프로그래밍 21

예제 (계속) #include <stdio. h> #include <stdlib. h> … rand() 함수 사용을 위한 것

예제 (계속) #include <stdio. h> #include <stdlib. h> … rand() 함수 사용을 위한 것 #define N 10 void select_sort(int data[ ], int n); void print_array(int s[ ], int n); … 21쪽에 정의됨 main() { int i, a[N]; for (i=0; i<N; i++) a[i] = rand() % 1000; print_array(a, N); select_sort(a, N); print_array(a, N); … N개의 0~999사이의 임의의 정수 생성 … 정렬 전 출력 … 정렬 후 출력 } C 프로그래밍 26