问答题 下列给定程序中,函数proc()的功能是:计算n!。例如,若输入:6,则输出:6!=720.000000。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<conio.h>
double proc(int n)
{
double result=1.0;
//****found****
if n==0
return 1.0;
if(n>1&&n<170)
//****found****
result*=n--
return result;
}
void main()
{ int n;
printf("Input N:");
scanf("%d", &n);
printf("/n/n%d!=%1f/n/n", n, proc(n));
}
【正确答案】
【答案解析】(1)错误:if n==0
正确:if(n==0)
(2)错误:result*=n--
正确:result=n*proc(n-1); [解析] 根据C语言的语法规则,语句if的条件必须在括号内,因此,“if n==0”应改为“if(n==0)”。该程序中求整数n的阶乘是使用递归调用来实现的,因此,“result*=n--”应改为“result=n*proc(n-1)”。