C/C++

Простое задание на C++. ПОМОГИТЕ

Запрашивать у пользователя ввод числа от 1 до 5, пока пользователь не введет число 5. Если пользователь ввел число 1 вывести на экран следующую последовательность символов (используя цикл for)

* * * * * * *

* * * * *

* * *

*

* * *

* * * * *

* * * * * * *

Если пользователь ввел число 2вывести на экран следующую последовательность символов (используя цикл while)

* * * * * *

* * * * *

* * * *

* * *

* *

*

Если пользователь ввел число 3, то запросить у него количество звездочек и вывести их по убыванию (как при вводе числа 2).

Если пользователь ввел число 4, то запросить у него количество звездочек и вывести их по убыванию и возрастанию (как при вводе числа 1).

Если пользователь ввел число 5, прекратить запрашивать ввод.
Юрий Кодин
Юрий Кодин
281
#include <iostream>

using namespace std;

int main()
{
const char star = '*';
int q;
do
{
do
{
cout << "Введите целое число от 1 до 5: ";
cin >> q;
}while(q < 1 || q > 5);
switch(q)
{
case 1:
for(int x = 7; x > 0; x -= 2)
{
for(int y = 0; y < x; y++)
cout << star << ' ';
cout << endl << endl;
}
for(int x = 3; x <= 7; x += 2)
{
for(int y = 0; y < x; y++)
cout << star << ' ';
cout << endl << endl;
}
break;
case 2:
for(int x = 6; x > 0; x--)
{
for(int y = 0; y < x; y++)
cout << star << ' ';
cout << endl << endl;
}
break;
case 3:
int u;
do
{
cout << "Количество звёздочек: ";
cin >> u;
}while(u < 1);
for(int x = u; x > 0; x--)
{
for(int y = 0; y < x; y++)
cout << star << ' ';
cout << endl << endl;
}
break;
case 4:
int t;
do
{
cout << "Количество звёздочек: ";
cin >> t;
}while(t < 1);
for(int x = t; x > 0; x -= 2)
{
for(int y = 0; y < x; y++)
cout << star << ' ';
cout << endl << endl;
}
for(int x = 3; x <= t; x += 2)
{
for(int y = 0; y < x; y++)
cout << star << ' ';
cout << endl << endl;
}
break;
}
}while(q != 5);

return 0;
}
Иван Иванов
Иван Иванов
56 356
Лучший ответ
Иван Иванов Я был не внимательным, в случае 2 и 3 нужно использовать цикл while:

case 2:
int x1 = 6;
while(x1 > 0)
{
//for(int x = 6; x > 0; x--)
//{
for(int y = 0; y < x1; y++)
cout << star << ' ';
cout << endl << endl;
x1--;
}
break;
case 3:
int u;
do
{
cout << "Количество звёздочек: ";
cin >> u;
} while(u < 1);
int x2 = u;
while(x2 > 0)
{
//for(int x = u; x > 0; x--)
// {
for(int y = 0; y < x2; y++)
cout << star << ' ';
cout << endl << endl;
x2--;
}
break;