C/C++

Сортировка в С++

Как отсортировать три переменные по возрастанию, знаю про sort(), но она работает вроде только с вектором
Это делается тремя строчками:

if (a > b) { t = a; a = b; b = t; }
if (b > c) { t = b; b = c; c = t; }
if (a > b) { t = a; a = b; b = t; }
Александр Подколзин
Александр Подколзин
95 666
Лучший ответ
Александр Савельев Я делал так же только перебрал больше вариантов, строчек 6 почему-то, теперь понял, спасибо
Дамир Дюсекенов я возражу !
если такие строки считать строками все в 1 строку уложится ! ахахах.
Константин Константинов Андрей можно вопрос?
Я понимаю, что вы отсортировали значения в переменных. Но разве это соответствует условию задачи?
Допустим на основе этого задания:
Заданы количества сообщений трех пользователей: Дима =30, Миша=20, Саша=50.
Нужно вывести пользователей относительно количества их сообщений в порядке возрастания.
Ответ должен быть таким: Миша, Дима, Саша.
У вас же получится первоначальный порядок только количество сообщений у всех поменяется: Дима =20, Миша=30, Саша=50.
Вы не согласны?
#include

using namespace std;

void change(int &a, int &b)
{
a^=b;b^=a;a^=b;
}

int main()
{
cin >> a;
cin >> b;
cin >> c;

if (a > b) change(a,b);
if (b > c) change(c,b);
if (a > b) change(a,b);

cout << a << " " << b << " " << c;
}
Александр Савельев Нет просто int a,b,c
Александр Савельев Допустим я ввел 3 1 2, а на выходе должно быть 1 2 3
Галым Калымбетов В переменной a должно быть записано наибольшее значение из всех трех, и так далее, да?
Дамир Дюсекенов Красиво рисуешь. я тут обрадовался что код понял а нихера подобного, я конечно все понял что происходит но не догнал почему так !.

a^=b;b^=a;a^=b; это как понимать ?.

И еще a > b & b > c & a > b нахера два раз сранивнивается с a > b.
Ооо Спк-Урал Вместо change проще было использовать стандартный swap
Я за них поработал тут.

int aMisha = 20;
int bDima = 30;
int cSasha = 50;
int t = 0;

if (aMisha > bDima) { t = aMisha; aMisha = bDima; bDima = t; }
if (bDima > cSasha) { t = bDima; bDima = cSasha; cSasha = t; }
if (aMisha > bDima) { t = aMisha; aMisha = bDima; bDima = t; }
cout << aMisha << " Misha"<< endl;
cout << bDima << " Dima" << endl;
cout << cSasha << " Sasha";
Dauren Tashkenbayev
Dauren Tashkenbayev
2 780
Зачем те встроенные функции? В инете полно алгоритмов, можно и вручную. Самая элементарная - пузырьком
Obochkov
Obochkov
1 871
Александр Савельев Что за пузырек?