下列给定程序中,函数fun()的功能是:根据整型参数m,计算如下公式的值。 y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m) 例如,若m=2000,则应输出0.000160。 请改正程序中的错

admin2010-09-14  33

问题 下列给定程序中,函数fun()的功能是:根据整型参数m,计算如下公式的值。
   y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)
   例如,若m=2000,则应输出0.000160。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
  #include <conio.h>
  #include <stdio. h>
  /*************found**************/
  fun (int m)
  { double y=0, d;
   int i;
  /*************found**************/
    for (i=100, i<=m, i+=100)
       {d= (double) i* (double) i;
        y+=l. 0/d;
        }
      return (y);
     }
   main ( )
   { int n=2000;
     clrscr();
     printf("\nThe result is %lf\n",fun(n));

选项

答案(1)错误:fun(int m) 正确:double fun(int m) (2)错误:for(i=100,i<=m,i+=100) 正确:for(i=100;i<=m;i+=100)

解析 题目要求在函数fun()中求级数前m项和,可用循环语句,每次计算级数中的一项,然后累加。此题的难点就在定义fun(int m)中的m的定义,由后面函数的应用可以确定应该定义成double fun(int m)。for(i=100,i<=m,i+=100)中是一个简单的基础错误。
转载请注明原文地址:https://kaotiyun.com/show/aXID777K
0

最新回复(0)