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