给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。 例如,若m中的值为:5,则应输出:0.536389。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #i

admin2013-09-15  37

问题 给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。

例如,若m中的值为:5,则应输出:0.536389。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
double fun (int m)
{  double y=1.0;
  int i;
/**********found**********/
    for(i=2;  i<m;  i++)
/**********found**********/
    y-=1/(i * i);
  return(y);
}
main()
{  int n=5;
   printf("\nThe re sult is%1f\n",fun(n));
}

选项

答案(1)for(i=2; i<=m; i++) (2)y -=1.0/(i*i);

解析 (1)第一个标识下面,“for(i=2;i<m;i++)”中的循环条件根据题干中的公式,可以知道要计算的公式中应包括i=m时的值,所以循环条件应该改为“for(i=2;i<=m;i++)”。
    (2)第二个标识下面,因为y被定义为浮点型,i被定义为整型,所以“1/(i*i)”的计算结果为整型,即“y-=1/(i*i);”的返回值为整型,随着i的增加,计算结果一直为0,因此改为“y-=1.0/(i*i);”。
转载请注明原文地址:https://kaotiyun.com/show/PMJp777K
0

最新回复(0)