2010-07-13 156 views
0

我需要幫助,我得到這個矩陣的一個問題,我需要把它以這樣的方式幫助java矩陣?

 
1 2 3 4 = 10 
2 4 6 8 = 20 
3 6 9 12 = 30 
4 8 12 16 = 40 

但我有這樣:

 
1 2 3 4 1 
2 4 6 8 2 
3 6 9 12 3 
4 8 12 16 4 

我不知道如何能我們這樣做,我的意圖,但沒有

這是我的代碼:

public class Matrix { 

    public static void main(String args[]) { 

     int mult = 4; 


     for (int i = 1; i <= mult; i++) { 
      // System.out.println(); 


      for (int j = 1; j <= mult; j++) { 
       int operacion = i * j; 
       int suma = 0; 
       suma = operacion + suma; 

       System.out.print(operacion + " "); 

      } 


      int sum = 0; 
      sum = i + sum; 
      System.out.println(sum); 


     } 
    } 
} 

再見

回答

3

當你這樣做:

for (int j = 1; j <= mult; j++) { 
    int operacion = i * j; 
    int suma = 0; 
    suma = operacion + suma; 

suma總是等於operacion,因爲你把它每次都設置爲0,然後添加operacion

你想這樣做:

int suma = 0; 
for (int j = 1; j <= mult; j++) { 
    int operacion = i * j; 
    suma += operacion; 
+0

謝謝回答我沒有注意到這一點,我要去嘗試,檢查更多的我的代碼 – bentham 2010-07-13 18:34:19

1

將int sum = 0放在第二個for循環之外。

int suma = 0; 
for (int i = 1; i <= mult; i++) { 
     // System.out.println(); 
     suma =0; 

     for (int j = 1; j <= mult; j++) { 
      int operacion = i * j; 

      suma = operacion + suma; 

      System.out.print(operacion + " "); 

     } 
     System.out.println(suma); 


    } 
+0

謝謝,我沒有注意到的總和,我得到了它 – bentham 2010-07-13 18:33:31

0

您使用它之前要重設總和爲0。您可能希望在內部循環之前將總和重置,並將其添加到內部循環內部並打印到內部循環外部。

也爲您的最終println,打印(「=」+總和),而不是剛剛總結。

因爲您提到這是一個練習(作業),所以試着不要真正糾正您的代碼 - 並感謝您對它進行標記。我希望更多的回答者會尋找這個符號來表明這個人需要學習,並且不需要爲他們編碼的答案。

+0

你有原因謝謝回答 – bentham 2010-07-13 18:33:56

1

您應該看看String.format()PrintStream.printf()。我認爲其他人已經幫助你解決了總和問題。因此,試圖打印值出這樣的:

for (int i = 0; i < 4; i++) 
{ 
    int[] values = new int[4]; 
    int sum = 0; 
    for (int j = 0; j < 4; j++) 
    { 
     values[i] = (i+1) * (j+1); 
     sum += values[i]; 
    } 
    System.out.printf("%-4d%-4d%-4d%-4d = %d\n", values[0], values[1], values[2], values[3], sum); 
} 

嘗試也從最後一行去掉所有的減號(-),看看你最喜歡的。爲回答

+0

感謝asnwering,它是一種很好的幫助! – bentham 2010-07-13 19:04:05