Если они числа положительны, то большее из них заменить их средним арифметическим - C (СИ)
Формулировка задачи:
Помогите с программой и бса пожалуйста)
Задание такая: Даны два целых числа. Если они оба положительны, то большее из них заменить их средним арифметическим; если оба отрицательны, то поменять знак у меньшего из них; иначе каждое из них удвоить.
Решение задачи: «Если они числа положительны, то большее из них заменить их средним арифметическим»
textual
Листинг программы
#include <stdio.h>
int main() {
int a, b, c;
if (scanf("%d%d", &a, &b) != 2) {
return 1;
}
if ((0 < a) && (0 < b)) {
c = (a + b) / 2;
if (a < b) {
b = c;
}
else {
a = c;
}
}
else if ((a < 0) && (b < 0)) {
if (a < b) {
a *= -1;
}
else {
b *= -1;
}
}
else {
a *= 2;
b *= 2;
}
printf("%d %d\n", a, b);
return 0;
}
Объяснение кода листинга программы
- Ввод чисел с клавиатуры.
- Проверка корректности ввода: если введено меньше двух чисел, программа завершается.
- Проверка на положительность обоих чисел.
- Если оба числа положительны, то вычисляется их среднее арифметическое и заменяет большее из них.
- Если оба числа отрицательны, то происходит обмен знаками.
- Если одно число положительное, а другое отрицательное, то положительное число остается без изменений, а отрицательное число меняет знак на положительный.
- Если оба числа положительны или оба отрицательны, то оба числа умножаются на 2.
- Вывод полученных чисел.
- Программа завершается.