Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2019, 20:17   #1
MadDimon
Новичок
Джуниор
 
Регистрация: 21.10.2019
Сообщений: 1
Вопрос [C] Как задать числовой интервал в операторе switch

Язык программирования С

Нужно использовать оператор switch. Как указать интервал от 20 до 28 ? Либо я сильно туплю, либо в switch так нельзя. Помогите разобраться, кто знает.

Задание выглядит так:
Мужчина заполняет в военкомате анкету, программа должна в зависимости от указанного им возраста выводить различные подсказки, а именно:
- Если указан возраст от 20 и до 28 лет, то сообщать, что заполняющая подлежит призыву на срочную службу или может служить по контракту.
- Если указано отрицательное возраст или возраст более 100 лет, то сообщить об ошибке.

Последний раз редактировалось MadDimon; 21.10.2019 в 21:23.
MadDimon вне форума Ответить с цитированием
Старый 22.10.2019, 02:19   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от MadDimon Посмотреть сообщение
либо в switch так нельзя
Надо условный оператор
Black Fregat вне форума Ответить с цитированием
Старый 22.10.2019, 04:53   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Код:
int a = 27;
switch (a) {
    case 20 ... 28: printf("You're in the army now\n"); break;
    default: if (a < 0 || a > 100) printf("error\n");
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.10.2019, 06:10   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Ну так это не С однако. Ему в С надо, а там так нельзя
Black Fregat вне форума Ответить с цитированием
Старый 22.10.2019, 15:45   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Ну GCC и Clang компиляторы поддерживают это языковое расширение. Просто надо иметь ввиду, что это расширение.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.10.2019, 20:33   #6
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,318
По умолчанию

Например так:
(Y-20)/9 для интервала 20 - 28 даст 0, для 29 и далее 1 и более.
Код:
case 0: printf("You're in the army now\n"); break;
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятное выражение в операторе switch CortesGames Общие вопросы C/C++ 2 21.01.2017 01:09
Задать временной интервал в php grundik1 PHP 2 25.04.2015 16:58
Как задать интервал чисел? AnderoN Помощь студентам 5 03.06.2011 17:33
Ошибка Е2126 в операторе Switch D.Max C++ Builder 2 14.06.2010 10:23