下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。 y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m) 例如:m中的值为5,则应输出0.838611。 请改正程序中的错误,使它

admin2013-06-12  29

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

选项

答案(1)错误:int j=1 正确:double j=1.0; (2)错误:y+=1/(i*i); 正确:y+=j/(i*i);

解析 错误1:为了做后面的除法运算,j要定义为实型数,否则除得的结果将为整数。错误2:题中公式是加减相间的运算,通过来实现。
转载请注明原文地址:https://kaotiyun.com/show/GgJp777K
0

最新回复(0)