问答详情
源自:5-9 递归函数练习

n哪里不对了

 */

int agen (int n)

{

    if(n=1)

    {

        return 10;

    }

    else

    {

        age = agen(n-1)+2;

    }

    return age;

}



int main() 

{

    int fage = ageN(5);

printf("第5个人的年龄是%d岁", fage);

return 0;


提问者:qweqwe123 2015-05-29 15:26

个回答

  • _慕尼黑
    2015-05-29 15:45:19

    #include <stdio.h> 
     
    int agen (int n)
     
    {
        int age;
        if(n==1)
     
        {
     
            return 10;
     
        }else{
     
            age = agen(n-1)+2;
     
        }
     
        return age;
     
    }
     
     
    int main() 
     
    {
     
        int fage = agen(5);
     
        printf("第5个人的年龄是%d岁", fage);
     
        return 0;
     
    }

    楼上说的不错,不过 return 10 不是错误;

  • Perona
    2015-05-29 15:40:10

    没有声明变量age怎么就可以用age呢,年龄是整数,那么我们就声明一个int型的变量

    int age;

    if(n=1)这个也错了,=是赋值的意思,==才是相等。

    if(n==1)

    return 10;这句话是想干嘛,我理解为你是想给第一个人赋值为10,那么应该是

    age=10;

     int fage = ageN(5);这里函数名写错了,换成小写的n

    int fage = agen(5);

    修改完的全部代码,你看看

    #include <stdio.h> 
    
    int agen (int n)
    
    {
        int age;
        if(n==1)
    
        {
    
            age=10;
    
        }else{
    
            age = agen(n-1)+2;
    
        }
    
        return age;
    
    }
    
    
    int main() 
    
    {
    
        int fage = agen(5);
    
        printf("第5个人的年龄是%d岁", fage);
    
        return 0;
    
    }