我最近刚刚在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(我只想把它作为我的输出)
在汇总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
,但上面写的内容似乎从关注点分离的观点来看更具吸引力。