1

以下に示すアスタリスクのパターンを表示するために、2つのforステートメントを使用するプログラムを作成したいと思います。

 **
 ****
 ******
 ********
 **********

私はステートメントのためにかなりの数を使用してそれらを作ることができますが、私はそれらのうちの2つだけを使いたいです、それを短くするためにこれは私が持っているものです:

 #include <iostream>
 #include <iomanip>
 using namespace std;

 int main()
 {
 int row = 1;
 int astrk = 1;

 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 2; astrk += 1)
 cout << '*';
 cout << endl;
 }// end for
 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 4; astrk +=1)
 cout << '*';
 cout << endl;
 }//end for
 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 6; astrk += 1)
 cout << '*';
 cout << endl;
 }// end for
 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 8; astrk += 1)
 cout << '*';
 cout << endl;
 }// end for
 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 10; astrk += 1)
 cout << '*';
 cout << endl;
 }// end for

 return 0;
 }

助けてください?:)

4

4 に答える 4

1

行数用の外側のループと、アスタリスク用の内側のループが必要です。内側のループがアスタリスクの印刷を完了すると、外側のループは改行を印刷し、アスタリスクの数を増やします。

擬似コードの場合:

for (from one to the number of lines)
{
    for (one to the number of asterisks)
    {
        print an asterisk
    }

    print a newline
    increase number of asterisks
}
于 2012-11-23T03:40:01.847 に答える
0

for1つは行を制御し、もう1つは列を制御する、2つのループを使用してこれを書き直す必要があります。

5つの行があり、各行に2、4、6などの星があります。

for(int i = 1; i <= 5; ++i) // five rows
{
    for(int j = 1; j <= i * 2; ++j) // we have 2 stars for each row number -> 2, 4, 6, etc...
    {
        cout << "*";
    }
    cout << "\n";
}

問題を理解し、紙で解決策を見つけてから実装してみてください。プログラミングの方法を学んでいると、はるかに簡単になります。

于 2012-11-23T03:43:32.153 に答える
0

パターンに注意してください:

1行目には2つのアスタリスク、2行目には4つのアスタリスク、3行目には6つのアスタリスクがあります...

印刷するアスタリスクの数は、行番号に2を掛けることによって決定されます。

emartelが示したように、外側のループの現在のi値(行番号)に2(印刷する単一のアスタリスクの数)を掛けたものに基づいて内側のforループのテスト式を作成することにより、内側のforループが実行される回数を動的に決定できます。

このような問題のほとんどは、内側のforループで外側のforループのカウンター値を巧妙な方法で使用して、目的の出力パターンを出力することになります。

于 2012-11-23T03:56:39.137 に答える
0

次のコードを試すこともできます

  for(int i=0;i<6;i++){//used to print out rows

        for(int j=0;j<=i;j++){used to print asterisk in each row
                cout<<"**";
                }
        cout<<endl;
        }

詳細については、http://include.site40.net/aasterics.phpをご覧ください。

于 2013-05-29T13:32:28.397 に答える