Есть ответ 👍

На с++ с тернарной операцией даны три целых числа. требуется определить, превосходит ли максимум этих чисел удвоенную сумму двух других или нет. формат входных данных с клавиатуры вводятся три целых числа через пробел, не превосходящие по модулю 105. формат выходных данных выведите «yes», если максимум превосходит удвоенную сумму двух других чисел, и «no» в противном случае. примечания если максимальный элемент равен удвоенной сумме, то требуется вывести также yes примеры входные данные выходные данные 3 5 1 no 3 4 14 yes

285
329
Посмотреть ответы 2

Ответы на вопрос:


Алгоритм решения

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

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

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

после этого мы выведем "yes", если в ans хранится 1, "no" иначе.

код

#include < bits/stdc++.h>

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 < bits/stdc++.h>

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 < bits/stdc++.h>

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;

}


S& (d& m)=s& d& m это правильный ответ

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS