救救萌新,为什么电脑输出结果和gpt说的不一样😿😿😿😿

2305_78818101 2023-09-18 20:29:57


把f(--n)改成f(n-1)才能输出1~n的和,否则算出的是1到n-1的和,为什么会这样TAT

 

#include<stdio.h>

int f(int);

int main(){
  int n;
  printf("n=");
  scanf("%d",&n);
  printf("sum=%d\n",f(n));
  return 0;
}

int f(int n){
   if(n>0) {printf("%d\n",n);return n+f(--n);}
   else return 0;
}

 

 

 

...全文
152 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
forever74 09-19
  • 打赏
  • 举报
回复

gpt追求拟人,这次拟的是一位犯错误的新手,这效果相当赞。

forever74 09-19
  • 打赏
  • 举报
回复

因为--n会修改n的值啊。
你要想return,就得先算出n+f吧
你要想算n+f就得先算f吧
你一算f就得先--n啊
n就变成4了
所以你算的是4+f(4)啊
没有5被累加的动作啊

forever74 09-19
  • 举报
回复
@forever74 典型的CPU都不会先把5放在那儿晾着再回头去求f的。
  • 举报
回复
@forever74 🥺🥺🥺醍醐灌顶了!!!谢谢!

68,698

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧