给定程序MODI1.C中fun函数的功能是:求出以下分数序列的前n项之和。 和值通过函数值返回main函数。 例如,若n=5,则应输出:8.391667。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动

admin2017-11-27  25

问题   给定程序MODI1.C中fun函数的功能是:求出以下分数序列的前n项之和。
   
    和值通过函数值返回main函数。
    例如,若n=5,则应输出:8.391667。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/***********found***********/
fun (int n)
{ int a = 2, b = 1, c, k ;
double s=0.0 ;
for (k = 1; k <= n; k++)
{ s=s+1.0*a/b;
/*******found* **********/
c = a; a += b; b += c;
}
return (s); }
main ()
{ int n = 5;
printf("\nThe value of function
is: %lf\n", fun (n) ) ;
}

选项

答案(1)double fun(int n) (2)c=a; a+=b; b=c;

解析 (1)fun函数中的语句“double s=0.0;”以及“return(s);”说明fun函数具有double返回值,所以应将“fun(int n)”改为“double fun(int n)”。
    (2)根据题干中给出的公式可以推出每一项的特点,知道每一项的b值是前一项的c值,所以第二个标识下“b+=c”改为“b=c;”。
转载请注明原文地址:https://kaotiyun.com/show/49xp777K
0

最新回复(0)