Как в C++ найти наибольшее число среди a и b не используя оператор if, max и т.д.(Решить используя cin и cout)

Ответы

Ответ дал: Аноним
6

#include <iostream>

using namespace std;

int main()

{

   int a, b;

   

   cout<<"Enter a, b :"; cin >> a >> b;

   int max;

   // отбор максимального числа

   ((a >= b) && (max=a)) || ((b >= a) && (max=b));

   cout << "max = " << max;

   return 0;

}

Приложения:

igorShap: Ну так это не решение пока
igorShap: Так-то можно вообще в две строки: max = a; max = b; - от же результат, 50 на 50
igorShap: тот же*
igorShap: Но идея интересная
Аноним: Всё, должно работать.
igorShap: Вы пропустили случай равенства чисел, добавьте в каком-нибудь случае >=
Аноним: Готово
Аноним: Сейчас еще раз исправлю)
Аноним: Всё. Проверил - работает
igorShap: Все, теперь работает
Ответ дал: igorShap
3

Привожу 3 способа.

std::cout << ((a > b) ? a : b);

//тернарный оператор

std::cout << a * (a > b) + b * (!(a > b));

//использование автоматического приведения в данной записи значений bool к int

std::cout << (a + b + abs(a - b)) / 2;//математический способ вычисления. Необходимо подключить библиотеку math.h. Возможно переполнение

Вас заинтересует