给定程序MODI1.c中函数fun的功能:计算n!。
    例如,给n输入5,则输出120.000000。
    请改正程序中的错误,使程序能输出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    给定源程序如下:
#include <stdio.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)!,直到n=1,所以应该为result*=n--;。