填空题
给定程序MODI1.C中函数fun的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
double fun(int n)
{double result=1.0;
/**********found**********/
if n==0
return 1.0;
while(n>1&&n<170)
/**********found**********/
result *=n--
return result;
}
main 1
{ int n;
printf("Input N:");
scanf("%d", &n);
printf("/n/n%d!=%lf/n/n", n, fun(n));
}
【正确答案】
【答案解析】(1)if(n==0)
(2)result *=n--; 或{result *=n; n--;}
答案考生文件夹 [解析] (1)这里是一个简单的格式错误,if条件应该加括号。
(2)根据阶乘的概念,从n开始,n!=n*(n-1)!,直到1,所以应该为result *=n--;。