Переписать код используя оператор switch
В зависимости от стажа работы на предприятии внедрена надбавка к окладу размере для работников
от 5 до 10 лет – 10%;
от 10 от 15 лет – 15%;
свыше 15 лет – 20%.
Составить программу, которая по заданному стажу работы определить размер надбавки в процентах.
#include <iostream>
using namespace std;
int main()
{
int a;
cout << "Напишите свой опыт работы: ";
cin >> a;
bool p = (a >= 5 && a <= 10);
cout << p;
switch (a >= 5 && a <= 10)
{
case true:
cout << "Надбавка 10%" << endl;
break;}
switch (a > 10 && a <= 15) {
case true:
cout << "Надбавка 15%";
break;}
switch (a > 15) {
case true:
cout << "Надбавка 20%";
break;}
}
Препод говорит, что код написан неправильно, хотя в компиляторе все выводится правильно.
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
можно так:
using namespace std;
int main()
{
int age;
cout << "Напишите свой опыт работы: ";
cin >> age;
switch ((int)((age < 0 ? 0 : age) / 5))
{
case 0:
break;
case 1:
cout << "Надбавка 10%" << endl;
break;
case 2:
cout << "Надбавка 15%";
break;
default:
cout << "Надбавка 20%";
}
return 0;
}