改错题 1.  下列给定程序中,函数fun()的功能是:按递归公式求函数值。
    fun(n)=10(n=1)
    fun(n-1)+2(n>1)
    例如,当给n输入3时,函数值为60;当给n输入6时,函数值为480。
    请修改程序中的错误,使它能得到正确结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    #include<stdio.h>
    //****found****
    fun(int n);
    {
    int j;
    //****found****
    if(n=1)
    j=15;
    else
    j=fun(n-1)*2;
    return(j);
    }
    void main()
    {
    int n;
    printf("Enter n:");
    scanf("%d",&n);
    printf("The result:% d\n\n",fun(n));
    }
【正确答案】错误:fun(int n);
   正确:fun(int n)
   (2)错误:if(n=1)
   正确:if(n==1)
【答案解析】 根据C语言的语法规则,函数定义之后是不加分号的。由整个程序看,函数fun()是函数定义,因此,“fun(int n);”应改为“fun(int n)”。表达式n=1表示的是将1赋给变量n,这显然是不对的。这里应该判断变量n是否等于1,因此,“if(n=1)”应改为“if(n==1)”。