0

ネストされた for ループの動作を理解する途中で、入力を受け取り、その入力値までのピラミッドを次のように表示するプログラムを作成しました。

1
22
333
4444

ピラミッドの高さだけを表示していますが、2番目のforループで書かれた部分を表示していません。

これがコードです(変更後ですが、必要な結果はまだありません)

#include <iostream>
using namespace std;

int main(void)
{
    int num;
    cout << "Enter the number of pyramid" << endl ;
    cin >> num ;
    for (int i = 0; i < num ; i++)
    {
        int max;

        for (int j = 0 ; j <= max ; j++)
        {
            cout << j ;
        }

        cout  << endl ;
        max++ ;
    }
    system("PAUSE");
    return 0;
}
4

6 に答える 6

2

max を 0 に初期化する必要があります。

int max = 0;

さらに、さらに 2 つのバグがあります。

int max ;
  1. for ループ for i の前に宣言する必要があります。(それ以外の場合、max は常に 0 と定義されます)

  2. 内側のループでは、j ではなく i を出力します。

于 2013-06-13T12:11:34.733 に答える
0

実際に 0 01 012 0123 のようなものを出力したい場合を除き、これが探しているコードです。

for (int i = 1; i <= num; i++)
{
  for (int j = 0; j < i; j++)
    cout << i;
  cout << endl;
}
于 2013-06-13T12:18:00.197 に答える
0

max は初期値に設定されていません。

最初のループ内で宣言され、2 番目のループで使用されます。

于 2013-06-13T12:18:49.613 に答える