下列给定程序中,函数fun的功能是:计算整数n的阶乘。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdlib.h >
#include < stdio.h >
double fun(int n)
{
double result=1.0;
while(n >1 && n< 170)
/* * * * * * found * * * * * */
result * =— —n;
/* * * * * * found * * * * * */
return;
}
void main()
{
int n:
printf(″Enter an integer:″);
scanf(″%d″,&n);
printf(″\n%d!=%lg\n″,n ,fun(n));
}
【正确答案】(1)result* =n— —;
(2)return result;
【答案解析】本题考查:复合赋值运算;通过return语句完成函数值的返回。
该题采用循环语句计算n的阶乘。当n大于1且小于170时,令result与n相乘,同时n自动减1,循环至n=2(n=1时无须相乘)。最后将阶乘的积result返回给主函数。