改错题 1.  下列给定程序中,proc()函数的功能是:根据形参m,计算下列公式的值。
    t=1+1/2+1/3+1/4+…+1/m
    例如,若输入10,则应输出2.928968。请修改程序中的错误,使它能计算出正确的结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    #include<stdlib.h>
    #include<conio.h>
    #include<stdio.h>
    double proc(int m)
    {
    double t=1.0:
    int i:
    for(i=2;i<=m;i++)
    //****found****
    t+=1.0/k;
    //****found****
    return i;
    }
    void main()
    {  int m;
    system("CLS");
    printf("\nPlease enter integer number:");
    scanf("%d",&m);
    printf("\nThe result is%1f\n",proc(m));
    }
【正确答案】(1)错误:t+=1.0/k;
   正确:t+=1.0/i;
   (2)错误:return i;
   正确:return t;
【答案解析】 由for循环可知,变量i中存放每一项的分母,变量k在函数proc()中没有定义,因此,“t+=1.0/k;”应改为“t+=1.0/i;”。变量t中存放各项的和,题目要求将各项的和返回给主函数,因此,“return i”应改为“return t”。