replaceMax()函數(shù)里,第一句已經(jīng)定義了「int max = arr[0];」,也就是把數(shù)組的第一個(gè)元素(下標(biāo)為0)賦值給了變量max了啊,后面的循環(huán)和判斷語(yǔ)句里,從不從數(shù)組的下標(biāo)為0的元素開(kāi)始都可以,從0開(kāi)始判斷5次和從1開(kāi)始判斷4次的結(jié)果都是一樣的,因?yàn)閍rr[0]肯定是不會(huì)大于它自己的,所以就算從0開(kāi)始判斷,那一次判斷條件也是不成立,也不可能執(zhí)行if內(nèi)部的代碼塊,因此為了條理清晰、代碼直接、效率優(yōu)先,就沒(méi)有必要從下標(biāo)0開(kāi)始,而直接從下標(biāo)1開(kāi)始。再羅嗦一句就是,從下標(biāo)0開(kāi)始循環(huán),也不會(huì)錯(cuò),只不過(guò)呢會(huì)給人印象是寫(xiě)代碼的人沒(méi)有預(yù)見(jiàn)到代碼的運(yùn)行情況,思路不清晰。
2019-02-22
replaceMax()函數(shù)里,第一句已經(jīng)定義了「int max = arr[0];」,也就是把數(shù)組的第一個(gè)元素(下標(biāo)為0)賦值給了變量max了啊,后面的循環(huán)和判斷語(yǔ)句里,從不從數(shù)組的下標(biāo)為0的元素開(kāi)始都可以,從0開(kāi)始判斷5次和從1開(kāi)始判斷4次的結(jié)果都是一樣的,因?yàn)閍rr[0]肯定是不會(huì)大于它自己的,所以就算從0開(kāi)始判斷,那一次判斷條件也是不成立,也不可能執(zhí)行if內(nèi)部的代碼塊,因此為了條理清晰、代碼直接、效率優(yōu)先,就沒(méi)有必要從下標(biāo)0開(kāi)始,而直接從下標(biāo)1開(kāi)始。再羅嗦一句就是,從下標(biāo)0開(kāi)始循環(huán),也不會(huì)錯(cuò),只不過(guò)呢會(huì)給人印象是寫(xiě)代碼的人沒(méi)有預(yù)見(jiàn)到代碼的運(yùn)行情況,思路不清晰。
2019-01-21
同問(wèn)!?。? 但是如果第一個(gè)數(shù)是最大的呢? 比如? int arr1[] = {41,10,3,12,22};? 那他的判斷語(yǔ)句就一直都不成立啦?
if(arr[i]>max)? ? ? ? ? ? ? ? ? ? ??
2019-01-15
好吧,上面的mex已經(jīng)調(diào)用了0下標(biāo)了