填空题
1. 下列给定程序中函数fun的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<conio.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;
}
msin()
{
int n;
printf("Input N:");
scanf("%d",&n);
printf("\n\n%d!=%if\n\n",n,fun(n));
}
【正确答案】
1、(1)if( n==0)
(2)result * =n--;或{ result *=n; n--; }
【答案解析】
(1)这里是一个简单的格式错误if条件判断语句应该加括号。
(2)根据阶乘的概念,从n开始,n!=n *(n-1)!,直到1,所以应该为result *=n--;。