问题描述:求阶乘问题
源代码:
/*求阶乘问题*/
#include <stdio.h>
int factorial (int n); //函数声明
int main (void){
int n;
printf("请输入您想求阶乘的数字:");
scanf ("%d",&n);
printf("这个数字的阶乘为:%d\n",factorial(n));//注意这里是 “函数名(变量名)”
//丰丰提问:如果只输入“函数名”的话,printf的将是什么呢?
}
int factorial (int n){
int i, fact = 1;
for (i=1; i<=n; i++){
fact = fact * i ;
}
return fact;
}
运行结果:

遇到问题:
1、粗心失误
main()函数中
printf("这个数字的阶乘为:%d\n",factorial(n));
注意这里是 “函数名(变量名)”
2、值得注意
整数变量占用四个字节的空间,所以 每个整数都有一定的取值范围,上述程序输入整数13,其结果(13!)就超出整数范围,输出错误的结果。

3、在Dev-c 5.11中,编译不能显示变量变化的问题:

出现原因:

解决方法:

疑问:
如果只输入“函数名”的话,printf的将是什么呢?

程序参数:
- 输出大小: 149.365234375 KiB
- 编译时间: 0.28s
网友评论