2

double 配列を使用して 5 x 10 のテーブルを作成しようとしています。最初のボックスは空白にし、残りのボックスには 2 ~ 50 の番号を付けます。

これまでのところこれがありますが、機能していません。

int array[][] = new int[5][10];
      for(int row=1; row<5;row++){
         for(int col=1;col<10;col++)
            array[row][col] = row*col;}
         System.out.println(array);
4

2 に答える 2

1

最初のボックスを空白にすることはできません...ゼロにすることもできますが、それはあなたが望むものですか?

変更点:

  1. 0インデックスではなく、1インデックスを使用する
  2. 配列の内容を手動で印刷する必要があります。以下のコンマを印刷する場所を参照してください。
  3. row * col正しい値ではありません。使用するrow * 10 + col + 1

これを試して:

int array[][] = new int[5][10];
for(int row=0; row<5;row++){
    for(int col=0;col<10;col++) {
        array[row][col] = row * 10 + col + 1;
        if (array[row][col] < 2) {
            System.out.print(" ");
        } else {
            System.out.print(array[row][col]);
        }
        if (col < 9) System.out.print(",");
    }
    System.out.println();
}

出力:

 ,2,3,4,5,6,7,8,9,10
11,12,13,14,15,16,17,18,19,20
21,22,23,24,25,26,27,28,29,30
31,32,33,34,35,36,37,38,39,40
41,42,43,44,45,46,47,48,49,50
于 2012-11-14T17:03:37.777 に答える
1

row * colからの連番は出せません2 to 50。そして、あなたのコードでは、 を残すだけでなく、完全first boxに除外しています。first rowfirst column

から通常どおりループを実行する必要があります0 to max。そして[0][0]、何も印刷しないでください。

また、 から印刷する2 to 50には、 で始まるカウント変数を用意し、印刷後に だけ2インクリメントし1ます。

変更されたコードは次のとおりです: -

int array[][] = new int[5][10];
int count = 2;

for(int row=0; row<5;row++){
    for(int col=0;col<10;col++) {
        if (row == 0 && col == 0) {
            continue;
        }
        array[row][col] = count++;
    }
}
for (int[] inner: array) {
    System.out.println(Arrays.toString(inner));
}

出力 : -

[0, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
[31, 32, 33, 34, 35, 36, 37, 38, 39, 40]
[41, 42, 43, 44, 45, 46, 47, 48, 49, 50]

ノート: -

空白にしたいので、ここでfirst boxは使用できませんArrays.toString。もう 1 つのループを使用し、簡単な方法で配列を出力する必要があります。そして、インデックスがの場合[0][0]、ちょうどsysout("");

于 2012-11-14T16:57:29.893 に答える