Принятие решений. Условные операторы в языке С
Задание 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.

