weixin_慕尼黑8587307
2021-12-13 23:50
#include <stdio.h>
int rr( n)
{
int age;
if(n==1)
{
age=10;
}
else
{
age=rr(n-1)+2;
return age;
}
}
int main()
{
int ss=rr(5);
printf("第5个人的年龄是%d岁", ss);
return 0;
}
我把if后面加个大括号,然后结束后再在else后面加个大括号,为什么这样运行出来是错误的,把大括号删了后是正确的,为啥这里的if..else不能用大括号。。大佬求助
如果return age在大括号里的话他会在每次的else中都被return回去了,也就是每次都被回归(意思是这个意思,具体怎么说我也不清楚,意会即可)一直到第一个人的时候就成了10-2,最终输出8是吧?
我一开始也是这样的,看了一楼的回答才恍然大悟。
return age;
这句要放在if{}else{}的外边
如:
if(n==1)
{
age=10;
}
else
{
age=rr(n-1)+2;
}
return age;
你把你想得代码打一遍不是更直观吗
你说的不会是
if(){
else{
}
}
这样吧?
貌似if语句没有这样使用的。。。你记错了吧
你是不是跟下面这种搞混了
C语言入门
926020 学习 · 20793 问题
相似问题