试题2本程序中 函数fun的功能是计算整数n的阶乘。程序中存在若干错误 请找出并改正。(注意:不改动
程序,阶乘,整数
已帮助 人
试题2
本程序中,函数fun的功能是计算整数n的阶乘。程序中存在若干错误,请找出并改正。(注意:不改动程序的结构,不得增行或删行。)
#include <stdio.h>
double fun(int n)
{ double result=1.0;
while (n>1 && n<170)
result*=- -n;
return;
}
main()
{ int n;
clrscr ();
printf(“Enter an integer:”) ;
scanf(“%d”,&n);
printf(“ %d!=%lg ”,n,fun(n)) ;
nono ();
{int n,i;
FILE *rf, *wf ;
rf = fopen (“g03.in”,“r”) ;
wf = fopen(“g03.out”,“w”) ;
for (i=1; i<=10;i++)
{ fscanf(rf, “%d”,&n) ;
fprintf (wf, “%lg ”,fun(n ) );
}
fclose (rf) ;
fclose (wf) ;
}
-
参考答案:试题2分析**********************本题中函数的功能是计算整数n的阶乘,result存放阶乘的结果,result*=- -n;是先将n的值减1,然后在于result相乘,此举并没有将n本身计算进去。最后返回的时候,返回的应该是result。试题2答案*************************[1] 第5行的result*=--n改为result*=n--;[2] 第6行的return后面加上返回值(result)。
