问答详情
源自:5-7 递归函数(一)

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

#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;

}


提问者:weixin_慕标3554954 2021-03-22 22:45

个回答

  • 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;

    }

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

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