69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int fact(int n);
int main(void)
{
int answer,n=4;
printf("まだmain関数にいます。 \n");
answer=fact(n);
printf("main関数に戻ってきました。 \n");
printf("%d! = %d \n", n, answer);
return(0);
}
int fact(int n)
{
int fac;
printf("fac(%d)を実行しています。 \n", n);
if(n <= 1) fac = 1;
else fac = fact(n-1) *n;
printf("fact(%d) %d\n", n, fac);
return fac;
}
printf("まだmain関数にいます。 \n"); //还在main函数中
answer=fact(n);
printf("main関数に戻ってきました。 \n"); //已经返回到main函数。
#include <stdio.h>
int fact(int n);
int main(void)
{
int answer,n=4;
printf("目前正在主函数。 \n");
answer=fact(n);
printf("主函数运行完毕。 \n");
printf("%d! = %d \n", n, answer);
system("pause");
return 0;
}
int fact(int n)
{
int fac;//此为一个计数器,记录阶乘每一次计算的的结果
printf("fac(%d)正在运行中。 \n", n);//n从主函数传入的值,从4开始
if(n <= 1)
{
fac = 1;//到1时fac
}
else
{
fac = fact(n-1) *n;//n不为1,的话执行fact(n-1),并与n相乘,记录到fac中
}
printf("fact(%d) %d\n", n, fac);
return fac;
}
まだmain関数にいます。
fac(4)を実行しています。
fac(3)を実行しています。
fac(2)を実行しています。
fac(1)を実行しています。
fact(1) 1
fact(2) 2
fact(3) 6
fact(4) 24
main関数に戻ってきました。
4! = 24
请按任意键继续. . .