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

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

如果要比較保存最大值不是應該比較五次嗎,for(i=1,i<5,i++),這不是只比較了四次嗎,第一個下標是0沒比較呀

for(i=1,i<5,i++)

如果在這里比較,0下標的元素10沒有參加比較吧

正在回答

3 回答

replaceMax()函數里,第一句已經定義了「int max = arr[0];」,也就是把數組的第一個元素(下標為0)賦值給了變量max了啊,后面的循環和判斷語句里,從不從數組的下標為0的元素開始都可以,從0開始判斷5次和從1開始判斷4次的結果都是一樣的,因為arr[0]肯定是不會大于它自己的,所以就算從0開始判斷,那一次判斷條件也是不成立,也不可能執行if內部的代碼塊,因此為了條理清晰、代碼直接、效率優先,就沒有必要從下標0開始,而直接從下標1開始。再羅嗦一句就是,從下標0開始循環,也不會錯,只不過呢會給人印象是寫代碼的人沒有預見到代碼的運行情況,思路不清晰。

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

同問?。?!? 但是如果第一個數是最大的呢? 比如? int arr1[] = {41,10,3,12,22};? 那他的判斷語句就一直都不成立啦?

if(arr[i]>max)? ? ? ? ? ? ? ? ? ? ??



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

慕神8379461

那就不用判斷了啊,直接跳過然后輸出就好
2019-02-09 回復 有任何疑惑可以回復我~

好吧,上面的mex已經調用了0下標了

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

舉報

0/150
提交
取消

如果要比較保存最大值不是應該比較五次嗎,for(i=1,i<5,i++),這不是只比較了四次嗎,第一個下標是0沒比較呀

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

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

幫助反饋 APP下載

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

公眾號

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