Если x, y отрицательны, то каждое значение заменить его модулем - C (СИ)
Формулировка задачи:
Даны действительные числа x, y. Если x, y отрицательны, то каждое значение заменить его модулем; если отрицательное только одно из них, то оба значения увеличить на 0.5; если оба значения не отрицательны и ни одно из них не принадлежит отрезку [0.5, 2.0], то оба значения уменьшить в 10 раз; в остальных случаях x, y оставить без изменения.
Решение задачи: «Если x, y отрицательны, то каждое значение заменить его модулем»
textual
Листинг программы
#include <stdio.h>
int main() {
double x, y;
printf("x,y: ");
scanf("%lf%lf", &x, &y);
if ((x < 0) && (y < 0)) {
x *= -1;
y *= -1;
}
else if (((x < 0) && (0 <= y)) ||
((y < 0) && (0 <= x))) {
x *= 0.5;
y *= 0.5;
}
else if (!((0.5 <= x) && (x <= 2.0)) &&
!((0.5 <= y) && (y <= 2.0))) {
x /= 10;
y /= 10;
}
printf("x = %lf\ny = %lf\n", x, y);
return 0;
}
Объяснение кода листинга программы
- Ввод значений переменных x и y с помощью функции scanf.
- Осуществление проверки: если x и y отрицательны, то каждое значение заменяется его модулем.
- Если x и y положительны, то осуществляется проверка: если x меньше нуля и y положительно, или если x положительно и y меньше нуля, то значения x и y заменяются на половину от исходного значения.
- Если x и y не удовлетворяют условию из пункта 3, то осуществляется проверка: если x и y не принадлежат интервалу [0.5, 2.0], то значения x и y заменяются на 1/10 от исходного значения.
- Вывод значений переменных x и y с помощью функции printf.
- Возврат значения 0, свидетельствующего об успешном завершении программы.