關(guān)于排列數(shù)組的問題
public class n{
? ??
? ? public static void main(String[] args) {
? ? ? ??
// 定義一個(gè)整型數(shù)組,并賦初值
? ?int[]nums=new int[]{ 61, 23, 4, 74, 13,148,20};
int max = nums[0]; // 假定最大值為數(shù)組中的第一個(gè)元素
int min = nums[0]; // 假定最小值為數(shù)組中的第一個(gè)元素
double sum = 0;// 累加值
double avg = 0;// 平均值
? ? ? ??
for (int i = 0; i < nums.length; i++) { // 循環(huán)遍歷數(shù)組中的元素
? ? ? ? // 如果當(dāng)前值大于max,則替換max的值
if(max<nums[i]){
? ? ? ? max=nums[i];
}
? ? ? ? // 如果當(dāng)前值小于min,則替換min的值
? ? ? ? if(min>nums[i]){
? ? ? ? ? ? min=nums[i];
? ? ? ? }
? ? ? ??
? ? ? ? System.out.println(nums[i]);
? ? ? ??
}
}
}
本節(jié)課內(nèi)容中有如果比假定的最大值要大,則替換當(dāng)前的最大值;如果比假定的最小值要小,則替換當(dāng)前的最小值的功能,那為什么我這時(shí)候輸出數(shù)組,順序還是和原來(lái)的一樣呢?
2016-12-09
數(shù)組的順序是不會(huì)變得,除非你重新排序了,這塊只是比較而已,將最大、最小的值分別賦值給max,min,并沒有哪一步操作是改變順序的。
2016-12-09
沒有跳出for循環(huán),System.out.println(nums[i]);應(yīng)該在for循環(huán)外邊的的{}中,其次你的System.out.println(num[i]);是將數(shù)組中的數(shù)循環(huán)輸出,應(yīng)該把num[i]換成已經(jīng)賦值過的 min和max。