Задать вопрос
12 ноября, 18:47

На с + + с тернарной операцией

Даны три целых числа. Требуется определить, превосходит ли максимум этих чисел удвоенную сумму двух других или нет.

Формат входных данных

С клавиатуры вводятся три целых числа через пробел, не превосходящие по модулю 105.

Формат выходных данных

Выведите "YES", если максимум превосходит удвоенную сумму двух других чисел, и "NO" в противном случае.

Примечания

Если максимальный элемент равен удвоенной сумме, то требуется вывести также YES

Примеры

входные данные выходные данные

3 5 1

NO

3 4 14

YES

+2
Ответы (1)
  1. 12 ноября, 19:06
    0
    Алгоритм решения

    Предположим, что первое введённое число - максимальное. Тогда в ans мы будем хранить 1, если первое число не меньше удвоенной суммы второго и третьего, и 0, если меньше.

    Проверим - если второе число больше первого, мы запомним, что максимальное число у нас второе и пересчитаем ответ: 1, если второе число не меньше удвоенной суммы первого и третьего, 0 иначе.

    Точно так же проверим третье число: если оно больше нашего максимального, обновим его и ответ.

    После этого мы выведем "YES", если в ans хранится 1, "NO" иначе.

    Код

    #include

    using namespace std;

    int main () {

    int a, b, c;

    cin >> a >> b >> c;

    int mx = a;

    int ans = (a > = (b + c) * 2? 1 : 0) ;

    if (b > mx) {

    mx = b;

    ans = (b > = (a + c) * 2? 1 : 0) ;

    }

    if (c > mx) {

    mx = c;

    ans = (c > = (a + b) * 2? 1 : 0) ;

    }

    cout << (ans = = 1? "YES" : "NO") << endl;

    return 0;

    }

    Другие варианты1) int + тернарный оператор - > bool

    #include

    using namespace std;

    int main () {

    int a, b, c;

    cin >> a >> b >> c;

    int mx = a;

    bool ans = (a > = (b + c) * 2) ;

    if (b > mx) {

    mx = b;

    ans = (b > = (a + c) * 2) ;

    }

    if (c > mx) {

    mx = c;

    ans = (c > = (a + b) * 2) ;

    }

    cout << (ans? "YES" : "NO") << endl;

    return 0;

    }

    2) string ans

    #include

    using namespace std;

    int main () {

    int a, b, c;

    cin >> a >> b >> c;

    int mx = a;

    string ans = (a > = (b + c) * 2? "YES" : "NO") ;

    if (b > mx) {

    mx = b;

    ans = (b > = (a + c) * 2? "YES" : "NO") ;

    }

    if (c > mx) {

    mx = c;

    ans = (c > = (a + b) * 2? "YES" : "NO") ;

    }

    cout << ans << endl;

    return 0;

    }
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «На с + + с тернарной операцией Даны три целых числа. Требуется определить, превосходит ли максимум этих чисел удвоенную сумму двух других ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Помогите решить! 1))) Вводятся 4 числа: a, b, c и d. Выведите все числа на отрезке от a до b, дающие остаток c при делении на d Входные данные 1 4 1 2 выходные данные 1 3 Входные данный 1 5 0 4 выходные данные 4 2))) Выведите все числа на отрезке от
Ответы (1)
Выведите все точные квадраты натуральных чисел, не превосходящие данного числа N. Формат входных данных Задано единственное число N. Формат выходных данных Необходимо вывести все точные квадраты натуральных чисел, не превосходящие данного числа N.
Ответы (1)
Уровень B. Задача M. Две одинаковые цифры рядом Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221). Входные данные Входная строка содержит одно натуральное число.
Ответы (1)
Дан массив из n элементов. Необходимо определить, есть ли в данном массиве элемент, равный заданному числу k ? Если есть, то вывести номер первого его вхождения. Формат входных данных С клавиатуры вводится натуральное число n (n≤100).
Ответы (1)
Помогите решить задачи! 1. Дан массив размера 10, числовые значения которого вводятся с клавиатуры. Вывести максимальный элемент данного массива и его номер. 2. Дан массив размера 10, числовые значения которого вводятся с клавиатуры.
Ответы (1)