使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使它能得出正确的结果。

admin2020-06-02  31

问题 使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数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;
}
main()
{
    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--;。
转载请注明原文地址:https://jikaoti.com/ti/XpG0FFFM
0

最新回复(0)