7 Functions and Arrays Recursions n Recursive functions

  • Slides: 12
Download presentation
7주차: Functions and Arrays

7주차: Functions and Arrays

Recursions n Recursive functions n 자기자신을 호출하는 함수

Recursions n Recursive functions n 자기자신을 호출하는 함수

Recursions Example #include<stdio. h> int factorial(int n) { if(n <= 1) return 1; else

Recursions Example #include<stdio. h> int factorial(int n) { if(n <= 1) return 1; else return (n * factorial(n – 1)); } int main(void) { printf(“%dn”, factorial(7)); return 0; } -int factorial(int) 함수는 recursive functions이다. -이 프로그램은 7!을 출력 한다. -빨간 부분이 자신을 호출 하는 부분

Recursive Call 함수 호출 factorial(7) factorial(6) factorial(5) factorial(4) factorial(3) factorial(2) factorial(1) Return value 7

Recursive Call 함수 호출 factorial(7) factorial(6) factorial(5) factorial(4) factorial(3) factorial(2) factorial(1) Return value 7 * factorial(6) 6 * factorial(5) 5 * factorial(4) 4 * factorial(3) 3 * factorial(2) 2 * factorial(1) 1 -예제 프로그램 에서 factorial() 함수는 7번 호 출된다. -최종적으로 factorial(7)은 7*6*5*4*3*2*1 을 return 한다.

Recursive function 예 (2) #include<stdio. h> int sum(int n) { { If(n == 1)

Recursive function 예 (2) #include<stdio. h> int sum(int n) { { If(n == 1) return 1; int i, sum = 0; for(i = 0 ; i <= n; i++) sum += i; return n + sum(n-1); return sum; } } 보통의 함수 정의 재귀적 함수 정의

#define n n Symbolic constant의 정의 #define PI 3. 14 n n n PI:

#define n n Symbolic constant의 정의 #define PI 3. 14 n n n PI: symbolic constant PI를 3. 14로 정의한다. 이후의 프로그램에서 PI는 3. 14와 동일하다.

#define Example #include<stdio. h> #define NUM_STUDENT 74 int main(void) {. . . for(i =

#define Example #include<stdio. h> #define NUM_STUDENT 74 int main(void) {. . . for(i = 0; i < NUM_STUDENT; i++). . . avg_score = sum_score / (double) NUM_STUDENT; . . . return 0; } -컴파일시 프로그 램의 모든 NUM_STUDENT는 74로 대치된다. -학생의 수가 변경 된 경우에 #define 만 변경하면 프로 그램의 모든 부분 에 이 변경이 적용 된다.

Arrays n The data type array n n One of the derived data types

Arrays n The data type array n n One of the derived data types in C Derived data types이 뭐지? n n Fundamental data type(int, char, float, . . . )을 이용해서 만들어지는 데이터 타입 array는 인덱스가 붙어 있는 데이터 타 입 n int a[10]; n a[0], a[1], . . . , a[9]

A Simple Array Example #include<stdio. h> #define NUM_STUDENT 74 int main(void) { double com_score[NUM_STUDENT];

A Simple Array Example #include<stdio. h> #define NUM_STUDENT 74 int main(void) { double com_score[NUM_STUDENT]; . . (com_score[]를 파일에서 읽어 들이는 부분) for(i = 0; i < NUM_STUDENT; i++){ sum += com_score[i]; }. . } -com_score[i]는 배열 (array)의 i번째 원소를 가리킨다. -C에서 배열의 첨자는 0부터 시작한다. -이 프로그램에서 배 열 com_score[]는 com_score[0]부터 com_score[73]까지 74개의 원소를 가진다.