2017-12-23 25 views
0

私はちょうど最近Javaで作業しています。そして、私はまだ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(私はちょうど私の出力としてこれを持っていると思います)

答えて

0

// 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"); 
} 

c行列を加算するとき

だけで終わりに一度印刷し、印刷されません。合計が完了した後にcだけを印刷するように、元の入れ子になったループにifロジックを追加できた可能性がありますが、上記で書いたものは、懸念の観点からより魅力的なようです。