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

admin2018-09-27  44

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

选项

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

解析 本题中函数的功能是求出分数序列的前n项之和。首先根据题干中给出的公式推出每一项之间的关系,求出每一项的表达式,然后求得数列的和。每一项的分母是前一项的分子,分子是前一项分子和分母的和。
    (1)fun函数中的语句“doubles=0.0;”以及“return(s);”说明fun函数具有double返回值,所以应将“fun(int n)”改为“double fun(int n)”。
    (2)根据题干中给出的公式可以推出每一项的特点,知道每一项的b值是前一项的c值,所以第二个标识下“b+=c;”改为“b=c;”。
转载请注明原文地址:https://kaotiyun.com/show/e8xp777K
0

最新回复(0)