问题 填空题

下列给定程序中,函数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)); }

答案

参考答案:错误: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);。

问答题 简答题
判断题