Как оператор switch превратить в оператор if - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Есть вот такая задачка: Для целого числа K (от 1 до 99 включительно) напечатать фразу «Мне K лет», учитывая при этом, что при некоторых значениях K слово «лет» надо заменить на слово «год» или «года». Например, 11 лет, 22 года, 51 год. Входные данные: Одно целое число K , 1≤k≤99 Выходные данные: Фраза с правильным окончанием Подсказки: Не нужно писать switch с 99 ветками case. Работать, конечно, будет, но лучше подумать головой. Окончание почти всегда зависит только от последней цифры числа Используйте вложенные switch Sample Input: 11 Sample Output: Мне 11 лет При помощи оператора

if

я знаю как ее решить. Вопрос как сделать ее с помощью оператора

switch

Конструкцию типа:
switch(age > 1 && age < 5)
{
case 1: printf("Мне %d года", age); break;
}
компилятор не принимает.

Решение задачи: «Как оператор switch превратить в оператор if»

textual
Листинг программы
#include <stdio.h>
 
int main(void) {
        int age, a;
        scanf("%d", &age);
        a = age % 10;
        switch (age){
                case 11 :
                case 12 :
                case 13 :
                case 14 :printf("Мне %d лет\n", age); break;
        default: switch (a){
                        case 1:printf("Мне %d год\n", age); break;
                        case 2:
                        case 3:
                        case 4:printf("Мне %d года\n", age); break;
                        case 5:
                        default :printf("Мне %d лет\n", age); break;
                }
        }
return 0;
}
Но за идею, все равно спасибо!

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Объявляет переменные age и a типа int.
  2. Считывает значение переменной age с помощью функции scanf.
  3. Вычисляет значение переменной a как остаток от деления age на 10.
  4. Использует оператор switch для проверки значения переменной age.
  5. Если значение age равно 11, 12, 13 или 14, выводит сообщение Мне 14 лет и прерывает выполнение оператора switch с помощью оператора break.
  6. Если значение переменной age не равно ни одному из указанных значений, переходит к следующему оператору switch для проверки значения переменной a.
  7. Если значение переменной a равно 1, выводит сообщение Мне 14 лет и прерывает выполнение оператора switch с помощью оператора break.
  8. Если значение переменной a равно 2, 3 или 4, выводит сообщение Мне 14 лет и прерывает выполнение оператора switch с помощью оператора break.
  9. Если значение переменной a равно 5 или не соответствует ни одному из указанных значений, выводит сообщение Мне 14 лет и прерывает выполнение оператора switch с помощью оператора break.
  10. Возвращает 0, завершая выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы