改错题 1.  下列给定程序中函数proc()的功能是:计算1/n!的值。
    例如,给n输入“3”,则输出“0.166667”。
    请修改程序中的错误,使它能得到正确结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    #include<stdio.h>
    #include<conio.h>
    //****found****
    int proc(int n)
    {
    double t=1.0;
    if(n==0)
    return 1.0;
    while(n>1&&n<170)
    //****found****
    t*=n++;
    t=1/t;
    returnt;
    }
    void main()
    {
    int n;
    printf("Input N:");
    scanf("%d",&n);
    printf("\n1/%d!=%1f\n",n,proc(n));
    }
【正确答案】(1)错误:int proc(int n)
   正确:double proc(int n)
   (2)错误:t*=n++;
   正确:t*=n--;
【答案解析】 由主函数中的函数调用以及函数proc()中的返回值可知,函数proc()的返回值类型为double型,因此,“intproc(int n)”应改为“double proc(int n)”;题目要求计算1/n!的值,整数n的阶乘为整数1到n相乘,因此,“t*=n++;”应改为“t*=n--;”。