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

admin2017-02-27  4

问题 给定程序MODI1.C中fun函数的功能是:求出以下分数序列的前n项之和。

  和值通过函数值返回main函数。
  例如,若n=5,则应输出:8.391667。
  请改正程序中的错误,使它能得出正确的结果。
  注意:不要改动maln函数,不得增行或删行,也不得更改程序的结构!
#include
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 ;
     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;

解析 本题中函数的功能是求出分数序列的前n项之和。首先根据题干中给出的公式推出每一项之间的关系,求出每一项的表达式,然后求得数列的和。每一项的分母是前一项的分子,分子是前一项分子和分母的和。
(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/5gID777K
0

相关试题推荐
随机试题
最新回复(0)