qq_乱碼_dpVX12
2018-10-28 17:09
#include <stdio.h>
int getAge(numPeople)
{
int age;
if(numPeople==1)
age=10;
else
{
age = getAge(numPeople-1)+2;
return age;
}
}
int main()
{
int fifthAge = getAge(5);
printf("第5个人的年龄是%d岁", fifthAge);
return 0;
}
你搞错了,能加的,你的语法错误是numPeople没有声明类型,else语法是对的,顺便说一句,你的递归函数逻辑有问题,答案是错的,自己想想看怎么改进
if这里加个{}和返回值;
如果不加{}这个判断条件有效无效都会执行age=10;,因为int 函数要有返回值,这里执行到age=10;就会卡住
哦,你可能试问为什么else可以不加{}是吧,因为if语法可以这么写,这样写默认认为你{}只包含一行,即我图中红线划的区域,第二行编译器会认为已经结束了,就不会再读了,最好不要这么写,这样的代码会被人骂的
因为你这里的return age也包括if中的age,如果你加{},当numPeople==1时没有返回值
C语言入门
926021 学习 · 20793 问题
相似问题