2

ユーザー入力

5

必要な出力 (while ループを使用)

1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25

コード:

while (temp1 <= a) {
    while (temp2 <= a) {
        temp = temp2 * temp1;
        System.out.print(temp + " ");
        temp2++;
    }
    temp1++;
    System.out.println();
}

私はa入力として取り、その図を形成しようとしていますが、できません..助けてください

4

6 に答える 6

2

問題を簡単な言葉に分解する必要がある場合、

  • ユーザーは数字「x」を入力します。
  • サイズ arr[x][x] の 2D 行列を作成します。
  • 各要素の値は a[i][j] = i * j; になります。// (i=1; i<=x) & (j=1;j<=x) を考慮
  • マトリックスを印刷します。

それを行う方法は n 通りあります。

for ループを使用するのが最も簡単だと思います。

于 2013-10-31T19:57:47.270 に答える
1
    int a = 5;
    int temp1 = 1;
    int temp2= 1;
    int temp = 1;

    while(temp1 <= a){
        while(temp2 <= a){
            temp = temp2*temp1;
            System.out.print(temp + " ");
            temp2++;
        }
        System.out.println();
        temp1++;
        temp2=1;
    }

上記のコードで、目的の結果が得られるはずです。ループの最後で temp2 変数をリセットします。必要なものに変更int a = 5するだけです。

追加の回答:

    int userInput = 5;
    int answer = 0;
    for(int y = 0; y < userInput; y++){

        for(int x = 0; x < userInput; x++ ){

            answer = x * y;
            System.out.print(answer + " ");
        }
        System.out.println();
    }

この回答では、一時変数をリセットする必要はなく、目的の結果が得られます

于 2013-10-31T19:56:16.437 に答える
1

以下のコード コメントは、コードの問題点を説明しています。

//assume temp1 equals 1
while(temp1 <= a){
    temp2 = 1;//you're primarily forgetting to reset the temp2 count
    while(temp2 <= a){
        temp = temp1*temp2;
        System.out.print(temp + " ");
        temp2++;
    }
    temp1++;
    System.out.println();
}
于 2013-10-31T19:52:39.130 に答える
1
    int a = 5; //Or however else you get this value.

    //Initialize your values
    int temp1 = 1;
    int temp2 = 1;
    int temp; //Only need a declaration here.

    while (temp1 <= a) {            
        while(temp2 <= a) {
            temp = temp1*temp2;
            System.out.print(temp + " ");
            temp1++;
            temp2++;
        }
        //This executes between inner loops
        temp2 = 1; //It's important to reset 
        System.out.println();
    }

または別のコンパクトな方法:

    int a = 5;

    int row = 0;
    int col = 0;

    while (++row <= a) {            
        while(++col <= a) {
            System.out.print(row*col + " ");
        }
        col = 0;
        System.out.println();
    }
于 2013-10-31T20:01:52.640 に答える
1
    for(int i=1; i<=a; i++){
        System.out.print(i);
        for(int j=2; j<=a; j++){
            int val = i*j;
            System.out.print(" " + val);
        }
        System.out.println();
    }
于 2013-10-31T20:03:12.070 に答える