2013-07-02 42 views
0

我想編寫一個在JAVA中繪製交叉的方法。 (請參閱照片中的示例)。Java,繪製交叉

這裏是例子:

Example

幾個問題:

  • 我怎麼給一個數組通過參數的尺寸是多少?看來Eclipse需要一個數字而不是數組維度的變量。我認爲有可能給該方法一個參數,數組的尺寸應該有多大。

  • 不知道如何告訴循環哪一個陣列位置應該是X而哪個不是。

  • 這是我的代碼想法到目前爲止它並不真正它應該做什麼:)我拿「1」而不是「X」,所以我可以用一個int數組來做到這一點。

    public void drawCross(int number){int i,j; int array [] [] = new int [40] [40];

    for(j=1;j<=number;j++){ 
        for(i=1;i<=number;i++){ 
         if(array[i]==array[j]){ 
         array[i][j]=1; 
         System.out.print(array[i][j]+" "); 
         } 
        } 
        System.out.print("\n"); 
    } 
    

    }

預先感謝您。 皮特

+0

什麼應該是你的電話號碼的價值? – Masudul

+0

@Massud例如:5 –

+0

'int array [] [] = new int [number] [number];'應該是可能的,你嘗試了什麼? –

回答

2

由於這並沒有真正似乎功課,解決

int[][] array = new int[number][number]; 

for (int i = 0; i < number; i++){ 
    for (int j = 0; j < number; j++){ 
     if (i == j || i == number - 1 - j) { 
      array[i][j] = 1; 
     } 
     System.out.print(array[i][j] + " "); 
    } 
    System.out.print("\n"); 
} 
  1. int[][] a是傳統的方式。 int a[][]是C程序員的語法糖。
  2. 在數學i通常是行,和j列,所以切換for循環。
  3. 陣列索引從0
  4. 條件應該說,一個人是否在兩個對角線之一,所以只關心索引我和j。
  5. ||是OR,而&&是AND(你應該不知道)。
  6. 正如你看到的,矩陣array不需要

所以:

boolean isOnDiagonal = i == j || i == number - 1 - j; 
System.out.print(isOnDiagonal ? "X " : ". "); // if-then-else operator. 
+0

謝謝!我是對的嗎,「number-1-j」中的-1是需要的,因爲數組以0開始? –

+0

是的,索引是0,1,...,number - 1,其中number ==數組。長度。 –