C언어 수업정리/3월 수업정리

3월 28일 재귀함수

송시혁 2013. 3. 28. 15:30

6-8.c

재귀함수 = 다시 돌아오는 함수???

 

#include <stdio.h>
void recursive_print (int);

int main()
{
  int num;
  printf("Please enter a positive integer: ");
  scanf("%d"&num);
  recursive_print (num);
  return 0;
}
void recursive_print (int n)
{
  if(n <=0)
  {
    return;
  }
  else
  {
    printf("recursive_print n = %d\n", n);
    recursive_print(n-1);
  }
}


예를 들어 5를 입력받았다고 가정하자.

num = 5,

recursive_print()로 내려간다.

n =5가 된다.

if의 조건을 따지고, else로 들어간다.

이때, 함수 자체가 들어가 있다. n-1형태로.

프린트문에 5를 찍고 n-1의 의해서 4가 된다.

이런식으로 5, 4, 3....1까지 출력이 된다.