最大值小值都是20???謝謝哦
package?com.doit; public?class?It?{?public?static?void?main(String[]?args)?{? ???//?定義一個整型數組,并賦初值? ????int[]?nums?=?new?int[]?{?61,?23,?4,?74,?13,?148,?20?};? ????int?max?=?nums[0];?//?假定最大值為數組中的第一個元素? ????int?min?=?nums[0];?//?假定最小值為數組中的第一個元素? ????double?sum?=?0;//?累加值?? ????double?avg?=?0;//?平均值??? ????for?(int?i?=?0;?i?<?nums.length;?i++)?{?//?循環遍歷數組中的元素???? ?????//?如果當前值大于max,則替換max的值? ??????do{max=nums[i];}while(nums[i]>max);????? ??????//?如果當前值小于min,則替換min的值? ??????do{min=nums[i];}while(nums[i]<min);?? ???????//?累加求和?????? ??????sum=sum+nums[i];??}?? ??????//?求平均值? ??????avg=sum/nums.length;? ??????System.out.println("數組中的最大值:"?+?max); ????????System.out.println("數組中的最小值:"?+?min); ??????????System.out.println("數組中的平均值:"?+?avg);? ??????????}?}
為啥我的最大值和最小值輸出的結果都是20呀?循環哪里出問題了呀?求大神救助
2018-07-12
其實你如果一定要用while也不是不可以,可是你卻偏偏用了do-while,在循環開始前都會先執行一次,所以你的最大值跟最小值才會都等于數組的最后一個。
2018-06-25
do
{max=nums[i];}
while
(nums[i]>max);
do
{min=nums[i];}
while
(nums[i]<min);?
這里寫if。寫循環干嘛。。
分別寫成:
if (max < nums[i]) max = nums[i];
if (min > nums[i]) min = nums[i];