0

ユーザー固有の最大値と最小値を指定して、forループでダイアモンドを出力しようとしています。入力も許可されていません。任意のアイデアをいただければ幸いです。練習は思ったほどスムーズではありません。

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{

int rows, count;

cout<<"What is the width of the diamond (3 to 21, odd values only): ";
cin>>rows;

//Error checking
if(rows < 1 || rows > 25)
    {
        cout<<"Invalid. please enter an odd number from 1 to 25: ";
        cin>>rows;
    }

//Ascending
for (count = 1; count < rows; count += 1)       
    {
        for (int rows = 0; rows < count; rows ++)
        cout<<"*";
        cout<<endl;
    }

//Descending
for (count; count > 0; count -= 1)              
    {
        for (int rows = 0; rows < count; rows ++)
        cout<<"*";
        cout<<endl;
    }


cin.get();
cin.get();

return 0;

}
4

1 に答える 1

1

これにより、目標の前半が実行されます-:

for (int stars = 1; stars <= rows; stars+=2)
{
        int padding = rows - stars;
        for (int c = 0; c < padding/2; ++c)
           cout<<" ";
        for (int s = 0; s < stars; ++s)
           cout<<"*";
        cout<<endl;
}
于 2013-02-21T22:19:08.033 に答える