填空题 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、(1)if( n==0)
   (2)result * =n--;或{ result *=n; n--; }    
【答案解析】
   (1)这里是一个简单的格式错误if条件判断语句应该加括号。
   (2)根据阶乘的概念,从n开始,n!=n *(n-1)!,直到1,所以应该为result *=n--;。