为了账号安全,请及时绑定邮箱和手机立即绑定

有没有大佬帮忙看看这个问题出那了,运行没有问题,但是结果是好几位数

int abc(n)

{

    int age;

    if(n==1)

    {

        return 10;

    }

    else

    {

        age=abc(n-1)+2;

    return age;

}

}









int main() 

{

    

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

return 0;

}


正在回答

4 回答

你的 int main 函数里面 没有调用abc函数

0 回复 有任何疑惑可以回复我~
#include <stdio.h> /*  * 请使用递归函数完成本题 * 小编已将正确代码放在左侧任务的“不知道怎么办”里 * 小编希望各位童鞋独立完成哦~ */int age(int n){    int y;    //定义年龄    if (n==1)    {        y=10;    }    else    {        y=age(n-1)+2;    }    return y;}int main() {    int y=age(5);	printf("第5个人的年龄是%d岁",y); 	return 0;}


1 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//5ec14c270001987815250757.jpg

http://img1.sycdn.imooc.com//5ec14c290001004316060736.jpg

主要原因:1你在定义函数时,先要确定参数的类型,如int abc(int n),n为整型;

                  2return age返回的时候,是返回给abc(5),但是你又添加了一个双引号(""),这个双引号("")代表字符串,所以得到的值就不同。(此上乃C童鞋所述,希望对你们有帮助,有所不对的地方(请见解)请指教)


1 回复 有任何疑惑可以回复我~

abc函数的返回值没有

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有没有大佬帮忙看看这个问题出那了,运行没有问题,但是结果是好几位数

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信