下列给定程序中,函数proc()的功能是:根据整型形参n的值,计算如下公式的值。
t=1-1/(2×2)-1/(3×3)-…-1/(n×n)
例如,当n=7时,t=0.488203。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
double proc(int n)
double y=1.0;
int i;
//************found*************
for(i=2; i<n; i++)
//************found*************
y-=1/(i*i);
return(y);
void main()
int n=7;
system("CLS");
printf("\nThe result is %1f\n", proc(n));
参考答案:(1)错误:for(i=2; i<n; i++) 正确:for(i=2; i<=n; i++)
(2)错误:y-=1/(i*i); 正确:y-=1.0/(i*i);
解析: 根据题目中所给公式t=1-1/(2×2)一1/(3×3)-…-1/(n×n),可知需要循环至i=n。因此,for(i=2; i<n; i++)应改为for(i=2; i<=n; i++);根据C语言中的语法规则,整数与整数相除结果仍为整数,要得到浮点数在分数中分子或分母最少有一个是浮点数。因此,y-=1/(i*i);应改为y==1.0/(i*i)。