改错题 1.  下列给定程序中,函数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 pioc(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",pmc(n));
    }
【正确答案】(1)错误:for(1=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);”。