下列给定程序中函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: 1 #inclu

admin2020-11-27  24

问题 下列给定程序中函数fun的功能是:计算n!。
  例如,给n输入5,则输出120.000000。
  请改正程序中的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
1  #include<stdio.h>
2  #include<conio.h>
3   double fun(int n)
4  {
5   double result=1.0;
6    /*********found*********/
7    if n==0
8    return 1.0;
9    while(n>1 && n<170)
10    /*********found*********/
11  result=n--;
12    return result;
13  }
14  main()
15  {
16    int n;
17   printf(’’Input N:’’);
18    scanf(’’%d’’,&n);
19    printf(’’\n\n%d!=%if\n\n’’,n,fun(n));
20  }

选项

答案(1)if(n==0) (2)result*=n--;或{result*=n;n--;}

解析 (1)这里是一个简单的格式错误,if条件判断语句应该加括号。
(2)根据阶乘的概念,从n开始,n!=n*(n-1)!,直到1,所以应该为result*=n--;。
转载请注明原文地址:https://kaotiyun.com/show/HZ3p777K
0

最新回复(0)