0

我正在尝试编写一种在 JAVA 中绘制十字的方法。(见照片的例子)。

这是示例:

例子

几个问题:

  • 如何通过参数为数组提供维度?似乎 Eclipse 需要一个数字而不是数组维度的变量。我认为可以给方法一个参数,数组的尺寸应该有多大。

  • 不知道如何告诉循环哪个数组位置应该是 X 而哪个不是。

  • 到目前为止,这是我的代码想法......它实际上并不是它应该做的:) 我用“1”而不是“X”,所以我可以用一个 int 数组来做。

    public void drawCross(int number){ int i,j; 整数数组[][]=新整数[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");
    }
    

    }

先感谢您。皮特

4

1 回答 1

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. 条件应该说明一个是否在两条对角线之一上,因此只涉及索引 i 和 j。
  5. ||是 OR,并且&&是 AND(如果你还不知道的话)。
  6. 如您所见,array不需要矩阵

所以:

boolean isOnDiagonal = i == j || i == number - 1 - j;
System.out.print(isOnDiagonal ? "X " : ". "); // if-then-else operator.
于 2013-07-02T10:29:10.903 回答