我想將數組拆分成上下兩部分 但它不會工作 它只是爲我打印排序 我把隨機打印語句確保條件是真實,是如何將一個整數數組拆分爲兩個
在偶調節它讀取if和for語句 但奇怪的是隻讀取if語句
這裏是我的代碼
public static int GetTheLowerHalfandUpperHalf(int[] array) {
int size = array.length;
int even = size%2;
if (even == 0) {
//print the lower half
for(int i=0; i==even;i++) {
int[] upper;
upper = new int[i];
System.out.println("The UPPER half is: "+Arrays.toString(upper));
System.out.println("Q3 = " +median(upper));
}
//print the upper half
for (int j=(even+1);j==size;j++) {
int[] lower;
lower=new int[j];
System.out.println("The UPPER half is: "+Arrays.toString(lower));
System.out.println("Q1 = " +median(lower));
}
} else if ((array.length % 2) != 0) {
//print the lower half
for (int i=0;i==(Q2-1);i++) {
int[] upper;
upper = new int[i];
System.out.println("The UPPER half is: "+Arrays.toString(upper));
System.out.println("Q3 = " +median(upper));
}
//print the upper half
for(int j=(Q2+1) ;j==size ;j++){
int[] lower;
lower=new int[j];
System.out.println("The UPPER half is: "+Arrays.toString(lower));
System.out.println("Q1 = " +median(lower));
}
}
return 0;
}
Q2是整個陣列的
'for'循環的第二個段定義了它何時運行,而不是何時停止。例如,for(int j =(even + 1); j == size; j ++)'通常看起來更像'for(int j =(even + 1); j
這個:'int even = size%2;'意味着偶數的even將爲0,奇數的爲偶數。這個:for(int i = 0; i == even; i ++){'意味着這個循環永遠不會執行偶數。至少你需要這樣一些東西:'int halfArrayMarker =(int)array.size/2;'然後你替換'for(int i = 0; i == even; i ++){'with'for (int i = 0; i == halfArrayMarker; i ++){'。 當你說「整個數組的中位數」時,你是指所有數值的平均值,還是標記數組的中點? – npinti
我的意思是數組的中點。 –