下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。 t=1-1/(2×2)-1/(3×3)-…-l/(m×m) 请改正函数fun()中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,

admin2010-05-05  44

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

选项

答案(1)错误:for(i=2;i<m;i++) 正确:for(i=2;i<=m;i++) (2) 错误:y-=1/(i*i); 正确:y-=1.0/(i*i);

解析 该题是一道简单的计算题,循环条件for(i=2;i<m;i++)中忽略了i=m时的一种情况,因为题目中i是从2到m的一个计算公式,y-=1/(i*i);的错误很明显,是语法错误,由定义double y=1.0可知,应该是y-=1.0/(i*i);,而非y-=1/(i*i);。
转载请注明原文地址:https://jikaoti.com/ti/JKkiFFFM
0

最新回复(0)