Перевести программу под оператор switch() - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <conio.h>
int main()
{
int x;
do
{
printf("Введите время в часах (0 - 23): ");
scanf("%d", &x);
}while (x < 0 || x > 23);
if (x >= 4 && x <= 9) printf("Утро\n");
else if (x >= 10 && x <= 17) printf("День\n");
else if (x >= 18 && x <= 22) printf("Вечер\n");
else printf("Ночь\n");
getch();
return 0;
}Решение задачи: «Перевести программу под оператор switch()»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int x;
do
{
printf("Введите время в часах (0 - 23): ");
scanf("%d", &x);
} while (x < 0 || x > 23);
switch (x) {
case 4: case 5: case 6: case 7: case 8: case 9:
printf("Утро\n");
break;
case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17:
printf("День\n");
break;
case 18: case 19: case 20: case 21: case 22:
printf("Вечер\n");
break;
default:
printf("Ночь\n");
break;
}
fflush (stdin); getchar();
return 0;
}
Объяснение кода листинга программы
- В коде определена переменная
xтипаint. - В цикле
do-whileпользователю предлагается ввести время в часах от 0 до 23. - Если введенное значение меньше 0 или больше 23, то программа повторно запрашивает ввод.
- В операторе
switchпроверяется значение переменнойx. - Если значение
xнаходится в диапазоне от 4 до 9, то выводится сообщениеУтро. - Если значение
xнаходится в диапазоне от 10 до 17, то выводится сообщениеДень. - Если значение
xнаходится в диапазоне от 18 до 22, то выводится сообщениеВечер. - Если значение
xне попадает ни в один из указанных диапазонов, то выводится сообщениеНочь. - В конце программы происходит очистка буфера ввода с помощью
fflush (stdin), затем считывается символ с помощьюgetchar(), чтобы программа не закрылась сразу после вывода сообщения. - Программа возвращает 0, что означает успешное завершение работы.