0
創建2-d陣列寫成M:你如何找到了最大行中的二維數組
- 要求用戶輸入的行和列的尺寸從鍵盤(使用掃描儀)。 N是9,如果用戶輸入列大小大於N + 4,則請求用戶重新輸入列大小
- 使用隨機對象將所有數組元素填充爲(3.0,13.0)範圍內的雙數
傳遞上述陣列m和調用以下兩種方法
- 在
findMaxRow(double[][]array)
,找到並打印列的最大和的2D陣列 - 在
returnAvg(m)
中,打印出陣列的平均m
- 在
評論:
所以,我做了代碼,找到最大科爾姆但我無法弄清楚如何找到最大行。我需要能夠找到最大行,但我想清楚如何,因爲我的代碼找到cllm而不是最大行。
這裏是我的代碼:import java.util.Scanner;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random rand = new Random();
System.out.print("Number of Rows? ");
int rows = input.nextInt();
System.out.print("Number of Columns? ");
int columns = input.nextInt();
while (columns > 7) { // check for column > n+5 where n = 2 in my case
System.out.print("The column amount is too high. Try another number: ");
columns = input.nextInt();
}
double[][] m = new double[rows][columns];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
m[i][j] = rand.nextDouble()*7+4;
}
}
findMaxCol(m);
System.out.println("The average value of this array is "+returnAvg(m));
}
public static void findMaxCol(double[][] a) {
double[] maxCol = new double[a[0].length];
double max = 0;
int maxColNum=0;
for (int i = 0; i < a[0].length; i++) { // Sum of Columns
for (int j = 0; j < a.length; j++) {
maxCol[i]+=a[j][i];
}
}
//System.out.println(Arrays.toString(maxCol));
for (int i = 0; i < maxCol.length; i++) {
if (max < maxCol[i]) {
max = maxCol[i];
maxColNum = i; // column number will associate with its array column starting with 0
}
}
System.out.println("The highest column sum is Column #"+maxColNum+" with a sum of "+max);
}
public static double returnAvg(double[][] a) {
double sum = 0; // initialization
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
sum+=a[i][j];
}
}
// System.out.println(sum); Test line
return (sum/(a.length*a[0].length)); // avg
}
}
列和行是我們用來模擬數據的好抽象;他們本身並不是2D陣列的固有方面。你能否澄清你到底在問什麼,並將你的代碼示例壓縮到[MCVE](http://stackoverflow.com/help/mcve)? –
我的代碼只找到我希望它找到行的最大列。我將如何能夠做到這一點。我是一個java新手,可以使用幫助。 –
你沒有采取我剛纔所說的任何內容。 –