慕运维5055354
2018-09-25 10:53
#include <stdio.h>
int tage(int n)
{ int age;
if(n==1)
age=10;
else
return age=2+tage(n-1);
}
int main()
{ int age;
age=tage(5);
printf("第5个人的年龄是%d岁",age);
return 0;
}
同学,你这样输出的结果应该是零的;
你的错误在于 没有 把函数调用的 值 返回 给main()函数的变量 age ;
第一个问题,第五行,应该是 return age=10 ,一个函数调用到n==1 时最后要有返回参数结束调用的运行,改了之后就可以了;
第二个问题,age=tage(5)的意思是调用函数tage(),把函数返回的参数值赋给age,
如果你是直接用tage(5)的话,那么只是调用了一个函数,而且函数的返回值你也没有安排一定的储存位置给它,也就是说age并没有被赋值,那么按照自动储存类型,age会被自动初始化为零
//本人为初学者,一愚之见,仅供参考
C语言入门
927002 学习 · 21533 问题
相似问题