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 回答