矩阵列和java

问题描述 投票:0回答:1

我最近刚刚在Java工作。我仍然在与Java进行一些斗争。任务是分别对列和行进行求和,示例如下。我设法得到列的总和,但我总是在我想要的输出中重复第一行,我该如何删除该错误。并且只需要所需的列总和。

它如何分别对行的总和起作用?

非常感谢您的帮助

代码看起来像这样:

public class MatrixColumnSums {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    double [][] a = new double [2][3]; 
    a[0][0] = 1; 
    a[0][1] = 2; 
    a[0][2] = 3; 
    a[1][0] = 4; 
    a[1][1] = 5; 
    a[1][2] = 6;

    System.out.println( "A");
    for (int i = 0; i < a.length; i++) {
        String str = "";
        for (int j = 0; j < a[i].length; j++) {
            str += a[i][j] + "\t"; 
        }
        System.out.println(str);
        }
    // column sums 
    // creating another matrix to store the sum of columns matrices
                double c[] = new double  [a[0].length]; 

                // Adding and printing addition of 2 matrices
                System.out.println("C");

                for (int i = 0; i < a.length; i++) {
                    for (int j = 0; j < a[0].length; j++)
                    {   
                        c[j] += a[i][j]; 

                        System.out.print(c[j] + "\t");

                    }
                    System.out.println(); 
               }

             }
          } 

输出如下所示:

一个

1.0 2.0 3.0

4.0 5.0 6.0

C

1.0 2.0 3.0(<=我想删除此行)

5.0 7.0 9.0(我只想把它作为我的输出)

java add
1个回答
0
投票

在汇总c矩阵时不要打印,只需在末尾打印一次:

// sum the columns first
for (int i=0; i < a.length; i++) {
    for (int j=0; j < a[0].length; j++) {
        c[j] += a[i][j];
    }
}

// then iterate c[] once at the end and print it
for (int j=0; j < a[0].length; j++) {
    System.out.print(c[j] + "\t");
}

请注意,我们可以将if逻辑添加到原始嵌套循环中,以便在求和完成后仅打印c,但上面写的内容似乎从关注点分离的观点来看更具吸引力。

© www.soinside.com 2019 - 2024. All rights reserved.