改错题 1.  下列给定程序中,函数proc()的功能是:根据整型形参n,计算如下公式的值。
    y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)
    例如,n中的值为10,则应输出0.817962。
    请修改程序中的错误,使它能得到正确结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    #include<stdlib.h>
    #include<conio.h>
    #include<stdio.h>
    double proc(int n)
    {
    double y=1.0;
    //****found****
    int j=1;
    int i;
    for(i=2;i<=n;i++)
    {
    j =-1*j;//****found****
    y+=1/(i*i);
    }
    return(y);
    }
    void main()
    {
    int n=10;
    system("CLS");
    printf("\nThe result is% lf\n",proc(n));
    }
【正确答案】(1)错误:int j=1;
   正确:double j=1.0;
   (2)错误:y+=1/(i*i);
   正确:y+=j/(i*i);
【答案解析】 由函数proc()可知,变量j的作用是控制每一项符号的变化,并且作为运算的分子,应改为double型变量,因此,“int j=1;”应改为“double j=1.0;”。变量y中存放多项式的值,多项式中的每一项符号由变量j决定,因此,“y+=1/(i*i);”应改为“y+=j/(i*i);”。