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

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

#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 回答

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

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

你要这样写就可以是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;

}

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

weixin_慕工程5489928

都是祖国的希望啊
2021-11-10 回复 有任何疑惑可以回复我~

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

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

qq_浪晟_0

我回答错了,是因为sb(1)是打印一个1而不是返回一个值到sum=
2021-03-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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