A-A+

下列给定程序中函数fun()的功能是计算1/n!的值。 例如:给n输入5 则输出0.0083

2022-08-05 23:26:40 问答库 阅读 173 次

问题详情

下列给定程序中函数fun()的功能是计算1/n!的值。
例如:给n输入5,则输出0.0083330
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
include <conio.h>
/******+****found*************/
int fun(int n)
{double result=1.0;
if(n==0)
return 1.0;
while(n>1 && n<170)
/**********found************/
result *=n++;
result=1/result;
return result;
}
main()
{
int n;
printf("Input N:");
scanf("%d",&n);
printf("n1/%d!=%Ifn",n,fun(n));
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1)错误:int fun(int n) 正确:double fun(int n)(2)错误:result*=n++; 正确:result*=n--;
(1)错误:int fun(int n) 正确:double fun(int n)(2)错误:result*=n++; 正确:result*=n--; 解析:错误1:函数的返回值为实型数据,所以函数的返回类型应为double。错误2:根据阶乘的概念,从n开始,每递减1的数相乘,直到1,因此此处n递减,而不是递增。

考点:函数,功能