亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

幫忙找下錯誤

為什么會得到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語言入門
  • 參與學習       926905    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

幫忙找下錯誤

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號