Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[3111] c언어...
라이온킹 [ccys81] 1271 읽음    2003-11-24 16:47
main()
{
   long fact();
int n, i;
printf("?"), scanf("%d",&n);
for(i=1; i<=n; i++)
  printf("%d!=%d\n",i, fact(i);
}
ling fact(n)
intn n;
{
   if(n<=1)
     return(1);
   else
     return(n*fact(n-1);  <=== 이부분이 이해가 않감니다.
}

실행결과
? 5
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120

어떻케 해서 이런 결과 값이 나오는지 이해가 않되더라구요...
scanf("%d",&n)에서 5라는 값을 입력하면은
   if(n<=1)
     return(1);
   else
     return(n*fact(n-1);

if에서 n은1보다 크기때문에 return(n*fact(n-1); 값을 읽는대
n은 5이기때문에 5*fact(5-1)이라고 생각하는대...
위와 같다면 실행결과 값같은 결과가 나오지 못한다고 생각이 들거등요..???
고수님들 제가 이해를 못하고 있는건가요??? 아님 책이 틀린건지??? 답글 부탁드립니다.

+ -

관련 글 리스트
3111 c언어... 라이온킹 1271 2003/11/24
4328     Re:c언어... 라이온킹 1262 2003/11/25
4327     Re:c언어... 심통 1190 2003/11/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.