Другие языки программирования и технологии

Программа на с ++

Программа на с ++.Составить с помощью оператора switch перечисляемый тип "радуга". Если выбрал цифру больше 7, то надпись" у радуги только 7 цветов", если отрицательное -"ошибка"
Maxim
Maxim
355
#include <iostream>
#include <clocale>
#include <Windows.h>
using namespace std;
enum class Rainbow {
Red = 1, Orange, Yellow, Green, LightBlue, Blue, Purple
};
int main() {
setlocale(LC_CTYPE, "Russian");
while (true) {
cout << "Число: ";
int color;
cin >> color;
if (color < 0) {
system("color 07");
cout << "Ошибка! \n";
continue;
}
switch (static_cast<Rainbow>(color)) {
case Rainbow::Red: system("color 4F"); break;
case Rainbow::Orange: system("color CF"); break;
case Rainbow::Yellow: system("color E0"); break;
case Rainbow::Green: system("color A0"); break;
case Rainbow::LightBlue: system("color B0"); break;
case Rainbow::Blue: system("color 9F"); break;
case Rainbow::Purple: system("color 5F"); break;
default:
system("color 07");
cout << "У радуги 7 цветов! \n";
}
}
}
Дмитрий Кирдань
Дмитрий Кирдань
97 261
Лучший ответ
Денис Чернов int color; хватит и uint8_t

clocale и Windows.h не оправдано
в ветке switch констанные значения одного типа,
отрицательные на фильтровать
cin>>x;
if( x>7 ) cout<< у "радуги только 7 цветов";
if( x<0 ) { cout<< у "зашибка"; exit(-1); }
swith бла-бла-бла

ветку 7 цветов можно без if в default поместить
Что за чушь я сейчас прочитал.
Может всё же цвета радуги? А не "только 7 цветов" и ошибку.

#include

int main ()
{
int n;
scanf("%d", &n);
switch(n){
case 1: puts("Red\n");
break;
case 2: puts("Orange\n");
break;
case 3: puts("Yellow\n");
break;
case 4: puts("Green\n");
break;
case 5: puts("Blue\n");
break;
case 6: puts("Dark blue\n");
break;
case 7: puts("Violet\n");
break;
default: puts("Wrong button\n");
break;
}

return 0;
}
Виктор Липилин
Виктор Липилин
37 513