while 루프를 사용하여 C에서 재귀를 사용하는 계승 프로그램. 안녕하세요, 귀중한 답변에 감사드립니다.while 루프가있는 C에서 재귀 함수를 사용하는 계승 프로그램
당신은 모두 사용한다고 말합니다. 그것의 올바른 나는 당신의 제안을 받아들입니다. 그렇다면 왜 재귀 함수를 사용하여 계승을 찾는 동안 나는 사용하지 않는가?
누군가가
while(n>1)
이 무한 루프라고 말했습니다. 그러나이 프로그램에서n
값은fact(n-1)
함수 자체에서 감소합니다. 이제이 프로그램에서 while 루프 다음에printf()
과getch()
을 넣어n
값을 알아 냈습니다.printf()
및getch()
함수는 while 조건이 false가 될 때만 실행됩니다.
이 프로그램에게 printf()
함수를 실행 getch()
함수가 반복 실행하고 printf()
n
함수 반환 값 = 1. 그래서 n
의 값이 감소되는 것을 결정하는 경우. 그렇다면 왜이 프로그램은 while 루프를 반복해서 실행합니까?
- 모든 함수에서 return 문은 마지막 함수 종료 문입니다. 실행이 return 문에 도달하면 실행은 함수에서 끝나고 호출 된 함수의 다음 행으로 돌아갑니다. 그러나이 프로그램에서 실행이 return 문에 도달하면 실행을 위해 동일한 함수가 반복됩니다. 왜 그런가요?
참고 :이 프로그램을 실행 터보 C 3.0을 사용하고,
난 당신이 scanf와 전에 같은 프롬프트를 넣어 제안 할 수 있습니다 모든#include<stdio.h>
int fact(int n)
{
int x=1;
while(n>1)
{
x=n*fact(n-1);
}
printf("N value after the while loop:%d",n);
getch();
return(x);
}
void main()
{
int n,fact1;
scanf("%d",&n);
fact1=fact(n);
printf("%d",fact1);
}