为啥我这个运行出来答案不对啊

来源:5-7 递归函数(一)

weixin_慕标3554954

2021-03-22 22:45

#include<stdio.h>

int sb(int n)

{

if(n==1)

{

printf("1");

return 0 ;

}

else

{

int sum=sb(n-1)+n;

return sum;

}

int main()

{

int n=10;

printf("第十天背单词%d个",sb(n));

return 0;

}


写回答 关注

3回答

  • p1ng
    2021-05-23 17:17:13

    不想骂你,删除printf("1");把下面return 0改为return1即可

  • qq_慕丝4581239
    2021-04-05 16:21:27

    你要这样写就可以是sb了:

    #include<stdio.h>

    int sb(int n)

    {

    if(n==1)

    {    

    return 1;

    }

    else{

    return sb(n-1)+n;

    }

    int mian()

    {

        sum=sb(10);

    printf("小明第10天记到了%d个单词记不到是sb\n",sum);

    return 0;

    }

    weixin...

    都是祖国的希望啊

    2021-11-10 20:50:44

    共 1 条回复 >

  • qq_浪晟_0
    2021-03-23 22:36:24

    程序运行时是按语句的先后顺序进行的,(当n=5)就是sb()先运行再加上值,最后一步:sb(1)+2+3+4+5此时的sb(1)直接执行返回值2+3+4+5不会进行+1

    qq_浪晟_...

    我回答错了,是因为sb(1)是打印一个1而不是返回一个值到sum=

    2021-03-23 22:40:07

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题