2013-08-29 72 views
-2

我想用簡單的循環和數組創建一個簡單的java程序。它應該是乘法表。java中的簡單乘法數組

如果行數是3,列數是5,那麼它應該顯示行,列,並在矩陣內應該給行和列的乘法。輸出應該看起來像這樣。

 1 2 3 4 5 
1 1 2 3 4 5 
2 2 4 6 8 10 
3 3 6 9 12 15 

這個我想創建簡單的循環。我是新來的Java,所以我無法弄清楚我該如何做到這一點。請讓我知道。

我已經完成了代碼,直到這裏。

import java.util。*;

class cross_multiplication 
{ 

    public static void main(String a[]) 
     { 

     System.out.println("How many rows required? : "); 
     Scanner in1 = new Scanner(System.in); 
     int num_rows = in1.nextInt(); 

     System.out.println("How many cols required? : "); 
     Scanner in2 = new Scanner(System.in); 
     int num_cols = in2.nextInt(); 

    //int arr1 [] = new int[num_rows]; 
    //int arr2 [] = new int[num_cols];  

     for(int i=0;i<num_rows;i++) 
     { 
       if (i==0) 
       { 
        System.out.print(""); 
       } 
       else 
       { 
        System.out.print(i);    
       } 
       System.out.print("\t");  

     } 


    } 
} 

感謝

+3

使用數組和循環然後問你以後試過 –

+1

你有沒有試過任何代碼? – sanbhat

+1

不知道爲什麼你會需要一個數組,但一個簡單的複合'for-loop'應該這樣做。 – MadProgrammer

回答

1

要包括標題,你需要檢查你是否在列0(j == 0)或列0(i == 0)。如何做到這一點的示例:

public static void print(int x, int y) { 
    for (int i = 0; i <= x; i++) { 
    for (int j = 0; j <= y; j++) { 
     if(i==0) { // first row 
     if(j>0) { 
      System.out.printf("%d\t", j); 
     } 
     else { // first row, first column: blank space 
      System.out.printf("\t"); 
     } 
     } 
     else { 
     if(j == 0) { // first column 
      System.out.printf("%d\t", i); 
     } 
     else { // actually in the body of the table - finally! 
      System.out.printf("%d\t" i * j); 
     } 
     } 
    } 
    System.out.println(); 
    } 
} 
3

你可以嘗試這樣的事:

private static void print(final int[][] table){ 
    for(int r = 0; r < table.length; r++){ 
     for(int c = 0; c < table[r].length; c++){ 
      System.out.printf("%d\t", table[r][c]); 
     } 
     System.out.println(); 
    } 
} 

private static int[][] table(final int rows, final int columns){ 
    final int[][] array = new int[rows][columns]; 
    for(int r = 1; r <= rows; r++) 
     for(int c = 1; c <= columns; c++) 
      array[r-1][c-1] = r * c; 
    return array; 
} 

從上面的代碼,如果你要打印10×10乘法表,你可以這樣做:

print(table(10, 10)); 

輸出結果如下:

10x10 output

+0

現在我們只需將標題重新添加到... – Floris

+0

@弗洛里斯當然,OP將能夠自己添加標題。 –

+0

我沒有說你必須爲他做。因此,「我們必須添加」,而不是「嘿喬希,你忘了標題」。邊幹邊學... – Floris

1

IM不會給你答案,但我會給你一些僞

你沒有正確設置了2個循環

Loop x = 1 to 3 
    Loop y = 1 to 3 
     //Do stuff 
    End innerloop 
End outerloop 

這將打印所有的解決方案在一條直線, 單線。但是你希望它明顯在矩陣中。答案是簡單的一個簡單的改變,只需要一行代碼。在你內循環的每個完整週期之後,你基本上完成了一行乘法(想一想爲什麼)。所以解決方法是,在內循環結束運行之後,在轉到x的下一個外循環值之前,您想要打印一個新行。總之,我們有這樣的事:

Loop x = 1 to 3 
    Loop y = 1 to 3 
     z = x * y 
     Print z + " " 
    End innerloop 
    Print NewLine // "\n" is the way to do that 
End outerloop 

,並嘗試

public static void print(int x, int y) { 
    for (int i = 1; i <= x; i++) { 

     for (int j = 1; j <= y; j++) { 

      System.out.print(" " + i * j); 
     } 
     System.out.println(); 

    } 
}