Принятие решений. Условные операторы в языке С
Задание 5
- При выводе максимального числа предусмотрите сообщение об имени числа, т.е. a или b.
- В цикле сформируйте вектор десяти случайных чисел из интервала [0;1] и выведите на дисплей.
- Для задания системного времени примените директиву define N X, где Х – номер компьютера, за которым выполняется лабораторная работа.
- Примените оператор условия ? для определения абсолютного значения вещественного числа, которое должно вводиться пользователем с клавиатуры.
Пример 6. Используя оператор условия ? и переключатель switch напишите программу определения времени года по вводимым числам от 1 до 12, считая, что цифра 1 соответствует январю, цифра 2 – февралю и т.д.
Программный код решения примера:
#include <stdio.h> #include <conio.h> int main (void) { int x; printf("\n\t Enter a whole number between 1 and 12: "); scanf_s("%d", &x); switch (x > 0 && x < 3 ? 1 : x == 12 ? 1 : x > 2 && x < 6 ? 2 : x > 5 && x < 9 ? 3 : x > 8 && x < 12 ? 4 : x > 12 || x < 1 ? 5 : 5) { case 1 : printf("\n\t This Winter\n"); break; case 2 : printf("\n\t This Spring\n"); break; case 3 : printf("\n\t This Summer\n"); break; case 4 : printf("\n\t This Autumn\n"); break; case 5 : printf("\n\t This is a mistake (Error)\n"); } printf("\n Press any key: "); _getch(); return 0; }
В программе три месяца зимы кодируются цифрой 1, три месяца весны –цифрой 2, три месяца лета – цифрой 3, три месяца осени – цифрой 4. Если введенная цифра не входит в целочисленный интервал [1; 12], то эта ситуация кодируется цифрой 5.
Возможный результат выполнения программы показан на рис. 4.6.
Задание 6
- Проверьте программу по вводимым вещественным числам. Объясните результат.
- Проверьте программу по вводимым буквам или знаков, имеющихся на клавиатуре. Объясните результат.
- В программе вместо 5-го пункта, т.е. вместо case 5, примените операцию default.
- Напишите программу определения времени года по вводимым числам без операторов условия ?.
Пример 7. Напишите программу распечатки четных целых чисел от 0 до 30.
#include <stdio.h> #include <conio.h> int main (void) { int x; printf("\n\t Even numbers from 0 to 30:\n\n"); for (x = 0; x < 31; x++) { if ( x % 2 ) continue; printf("\t\t %3d\n", x); } printf("\n Press any key: "); _getch(); return 0; }
В программе в качестве проверки условия использовано деление по модулю ( х%2 ). Если остаток от деления числа х не равен нулю, то утверждение (оператор, инструкция) continue передает управление непосредственно инструкции, проверяющей условное выражение, после чего циклический процесс продолжается. С помощью программы выводятся только четные числа, а при обнаружении нечетного числа происходит преждевременный переход к следующей итерации цикла, и функция printf() опускается. Функция printf() включена в тело цикла оператора for.
Результат выполнения программы показан на рис. 4.7.