C++ (оператор множественного выбора switch)
Написать программу, в которой пользователь вводит целое число k, а на экран выдаётся фраза «Мы нашли k грибов в лесу», согласовав окончание слова «гриб» с числом k.
Ответы на вопрос
В русском языке окончание слова «гриб» зависит от последней цифры числа, но числа 11, 12, 13, 14 являются исключениями:
-
1 гриб: 1, 21, 31, 41…
-
2, 3, 4 гриба: 2, 3, 4, 22, 23, 24…
-
5–20 грибов, а также числа, заканчивающиеся на 0, 5, 6, 7, 8, 9.
Для выбора окончания удобно использовать оператор switch.
C++#include#include using namespace std;int main() { int k; cout << "Введите количество грибов: "; cin >> k; int n = abs(k);
cout << "Мы нашли " << k << " ";
// Проверяем исключения: 11, 12, 13, 14 if (n % 100 >= 11 && n % 100 <= 14) { cout << "грибов"; } else { switch (n % 10) { case 1: cout << "гриб"; break;
case 2: case 3: case 4: cout << "гриба"; break;
default: cout << "грибов"; } }
cout << " в лесу." << endl;
return 0; }
Здесь n % 10 определяет последнюю цифру числа. Например, для 23 получаем 3, поэтому выводится «23 гриба». Однако одной последней цифры недостаточно: например, 11 заканчивается на 1, но правильно говорить не «11 гриб», а «11 грибов». Поэтому перед switch отдельно проверяется диапазон от 11 до 14 по двум последним цифрам.
Примеры работы программы:
Введите количество грибов: 1 Мы нашли 1 гриб в лесу.Введите количество грибов: 3 Мы нашли 3 гриба в лесу.
Введите количество грибов: 8 Мы нашли 8 грибов в лесу.
Введите количество грибов: 21 Мы нашли 21 гриб в лесу.
Введите количество грибов: 34 Мы нашли 34 гриба в лесу.
Введите количество грибов: 112 Мы нашли 112 грибов в лесу.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

