我怎样才能打印列的总和?

How can I print the sum of the columns as well?

package Matrix;

import java.util.Scanner;
public class Matrix
{
public static void main(String[] args) {
System.out.print("Enter 2D array size : ");
Scanner sc=new Scanner(System.in);
int rows=sc.nextInt();
int columns=sc.nextInt();

System.out.println("Enter array elements : ");    
         
int twoD[][]=new int[rows][columns];


for(int i=0; i<rows;i++)
{            
for(int j=0; j<columns;j++)
{
twoD[i][j]=sc.nextInt();
}
}
System.out.print("\n  \n");
for(int []x:twoD){
for(int y:x){
System.out.print(y+"        ");
}
System.out.println();
}
System.out.println("");
for(int i=0;i<columns;i++) {
int sum = 0;
for(int j=0;j<rows;j++)
{
sum=sum+twoD[i][j];
}
System.out.print(sum+" ");
sum=0;
System.out.print("       ");
}

}  

}

how can I print the sum of the columns as well? 
here is what I have so far
My expected output must be :
5     9      8   =   22
3     8      2   =   13
4     3      9   =   16
___________
12   20   19

如何打印列的总和?这是我到目前为止所拥有的,而且我的代码似乎也有问题。希望您能够帮助我。我已经为此工作好几天了,我是 java.

的新手

如何打印列的总和?这是我到目前为止所拥有的,而且我的代码似乎也有问题。希望您能够帮助我。我已经为此工作好几天了,我是 java.

的新手

您已将行中的元素相加。现在添加列而不是尝试更改 for 循环中的行更改列以添加。

改变

for(int i=0;i<columns;i++) {
int sum = 0;
for(int j=0;j<rows;j++)
{
sum=sum+twoD[i][j];
}
System.out.print(sum+" ");
sum=0;
System.out.print("       ");

for(int i=0;i<columns;i++) {
    int sum = 0;
    for(int j=0;j<rows;j++)
    {
    sum+=twoD[j][i];
    }
    System.out.print(sum+" ");
    System.out.print("  ");

因此,您将拥有一个对每一列都有效运行的循环,并且在开始时总和为 0,在遍历每一列结束时总和为准确,剩下的就是打印出来.


如果您想在 JOption 中实现它而不是在 Java 中使用 Scanner,则必须使用此导入语句导入 JOption 库

import javax.swing.JOptionPane;

然后你将输入的2D Array Size 改为使用showInputDialog 的方法。请记住,showInputDialog returns 是一个字符串,因此您需要使用 parseInt 将其转换为整数。这是一个例子

int rows;
rows = Integer.parseInt(JOptionPane.showInputDialog("Enter 2D Array 
Rows : "));
    
int columns;
columns = Integer.parseInt(JOptionPane.showInputDialog("Enter 2D 
Array Columns : "));  
             
int twoD[][]=new int[rows][columns];

接下来改变Array的输入也使用这个方法。像这样

for(int i=0; i<rows;i++)
    {            
    for(int j=0; j<columns;j++)
{
    twoD[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Enter 
Array Elements for Row "+(i+1)+" Column "+(j+1)));  
}
    }

导致最终代码为

import javax.swing.JOptionPane;
public class Matrix{
public static void main(String[] args) {
    int rows;
    rows = Integer.parseInt(JOptionPane.showInputDialog("Enter 2D 
Array Rows : "));
    
    int columns;
    columns = Integer.parseInt(JOptionPane.showInputDialog("Enter 2D 
Array Columns : "));  
             
int twoD[][]=new int[rows][columns];


for(int i=0; i<rows;i++)
{            
    for(int j=0; j<columns;j++)
{
    twoD[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Enter 
Array Elements for Row "+(i+1)+" Column "+(j+1)));  
}
    }
    System.out.print("\n  \n");
    for(int []x:twoD){
    int cSum = 0;
    for(int y:x){
    System.out.print(y+"        ");
    cSum+=y;
    }
    System.out.println(" =  "+cSum);
    }
    System.out.println("");
    System.out.println("___________");
    for(int i=0;i<columns;i++) {
    int sum = 0;
    for(int j=0;j<rows;j++)
    {
    sum+=twoD[j][i];
    }
    System.out.print(sum+" ");
    System.out.print("  ");
    }
 }
    }