關于排列數組的問題
public class n{
? ??
? ? 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的值
if(max<nums[i]){
? ? ? ? max=nums[i];
}
? ? ? ? // 如果當前值小于min,則替換min的值
? ? ? ? if(min>nums[i]){
? ? ? ? ? ? min=nums[i];
? ? ? ? }
? ? ? ??
? ? ? ? System.out.println(nums[i]);
? ? ? ??
}
}
}
本節課內容中有如果比假定的最大值要大,則替換當前的最大值;如果比假定的最小值要小,則替換當前的最小值的功能,那為什么我這時候輸出數組,順序還是和原來的一樣呢?
2016-12-09
數組的順序是不會變得,除非你重新排序了,這塊只是比較而已,將最大、最小的值分別賦值給max,min,并沒有哪一步操作是改變順序的。
2016-12-09
沒有跳出for循環,System.out.println(nums[i]);應該在for循環外邊的的{}中,其次你的System.out.println(num[i]);是將數組中的數循環輸出,應該把num[i]換成已經賦值過的 min和max。