鑑於我目前的程序,我希望計算一次用戶輸入所有值後每列和每行的總和。我目前的代碼似乎只是數組的價值的兩倍。這不是我想要做的。例如,如果用戶輸入具有以下值的3x3矩陣1 2 3 2 3 4 3 4 5,它看起來像我在下面的程序中格式化了它。 (見上面評論)總結2D陣列
然後我也想修改代碼,以便它挑選出對角線,並打印出來,這樣的輸出將是:主對角線:{1,3,5}
鑑於我目前的程序,我希望計算一次用戶輸入所有值後每列和每行的總和。我目前的代碼似乎只是數組的價值的兩倍。這不是我想要做的。例如,如果用戶輸入具有以下值的3x3矩陣1 2 3 2 3 4 3 4 5,它看起來像我在下面的程序中格式化了它。 (見上面評論)總結2D陣列
然後我也想修改代碼,以便它挑選出對角線,並打印出來,這樣的輸出將是:主對角線:{1,3,5}
您的代碼是好的,但最後列的總和你應該改變行而不是列。像這樣:
System.out.println("\n");
for(int column = 0; column < columns; column++)
{
for(int row = 0; row < rows; row++)
{
array2d[row][column] = array2d[row][column] + array2d[row][column];
System.out.print(array2d[row][column] + " ");
}
System.out.println();
}
歡迎來到Java世界。首先我們來剖析你的「加倍陣列」代碼。
array2d[row][column] = array2d[row][column] + array2d[row][column];
這行代碼是問題。您應用的循環往往會更新矩陣中每個元素的值。對於例如假設
array2d[1][2]=2
因此上面提到的代碼執行此
array2d[1][2]= array2d[1][2]+array2d[1][2];
基本上加倍數組的值。
你應該嘗試這樣的事:
//To print the values of rows
for(int i=0;i<rows;i++)
{
int rowValue=0;
for(int j=0;j<columns;j++)
{
//Print current row value
rowValue = rowValue + array2d[i][j];
}
System.out.println("ROW" +i+ "=" + rowValue);
}
下面的代碼將幫助您計算列的值。
//To print values of columns
for(int i=0;i<columns;i++)
{
int columnValue=0;
for(int j=0;j<rows;j++)
{
//Print current row value
columnValue = columnValue + array2d[i][j];
}
System.out.println("COLUMN" +i+ "=" + columnValue);
}
嘗試製作對角線的代碼。它非常簡單。
提示:主對角線的行號和列號相同。
P.S. - 將scan.close()
添加到您的代碼中。始終關閉此類連接以防止資源泄漏。
對於主對角線
for(int i=0;i<columns;i++)
{
for(int j=0;j<rows;j++)
{
if(i==j){
System.out.println(a[i][j]+ "\n");
}
}
}
不,這不是我想要的。我想要添加每列和每行,然後輸出看起來像我在我的代碼頂部的評論中。 – user3294617