最大值小值都是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];