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

帮忙找下错误

为什么会得到8,少的10去哪里了

正在回答

3 回答

细节是魔鬼

#include <stdio.h> 
int  getAge(int 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;
}


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

qq_Davidbeckham_03722434 提问者

看出来了,找了半小时
2016-10-13 回复 有任何疑惑可以回复我~

所以当numberpeople==1函数为0,即0+2+2+2+2=8

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

 age=10的意思是是给age这个变量赋值10,即让这个人年龄为十岁。age==10的意思是age的值与10这个数字大小相等,因为还没给age赋值,所以age==10为假,如果先定义int age=10,然后age==10,就为真。系统之所以没有报错是因为C语言保护性不够强,系统认为该假0并没有得到使用不影响,如果是Java这种安全语言就会报错

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

帮忙找下错误

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