Оператор выбора. Задача Ввести номер месяца и вывести количество дней в этом месяце. Решение Число дней по месяцам
Скачать 78.5 Kb.
|
Программирование на языке СиТема 7. Оператор выбораОператор выбора Задача: Ввести номер месяца и вывести количество дней в этом месяце. Решение: Число дней по месяцам: 28 дней – 2 (февраль) 30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь) 31 день – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь) Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от номера месяца. Можно ли решить известными методами? ? Алгоритм начало конец оператор выбора ни один вариант не подошел ввод M да нет M = 1? D = 31; нет M = 2? D = 28; да нет M = 12? D = 31; да вывод D ошибка Программа main() { int M, D; printf("Введите номер месяца:\n"); scanf("%d", &M); switch ( M ) { case 2: D = 28; case 4: case 6: case 9: case 11: D = 30; case 1: case 3: case 5: case 7: case 8: case 10: case 12: D = 31; default: D = -1; } if (D > 0) printf("В этом месяце %d дней.", D); else printf("Неверный номер месяца"); } ни один вариант не подошел break; break; break; выйти из switch Оператор выбора Задача: Ввести букву и вывести название животного на эту букву. Особенность: выбор по символьной величине. main() { char c; printf("Введите первую букву названия животного:\n"); scanf("%c", &c); switch ( c ) { case 'а': printf("Антилопа"); break; case 'б': printf("Бизон"); break; case 'в': printf("Волк"); break; default: printf("Я не знаю!"); } } Что будет, если везде убрать break? ? Оператор выбора Особенности:
или символьного типа (char) switch ( i+3 ) { case 1: a = b; break; case 2: a = c; } switch ( x ) { case 1: a = b; break; case 1: a = c; } Задания (с защитой от неверного ввода) «4»: Ввести номер месяца и вывести количество дней в нем, а также число ошибок при вводе. Пример: Введите номер месяца: Введите номер месяца: -2 2 Введите номер месяца: В этом месяце 28 дней. 11 Вы вводили неверно 0 раз. В этом месяце 30 дней. Вы вводили неверно 1 раз. «5»: Ввести номер месяца и номер дня, вывести число дней, оставшихся до Нового года. Пример: Введите номер месяца: 12 Введите день: 25 До Нового года осталось 6 дней. |