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; }
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; }
#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;
}
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.
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";
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";
Зачем те встроенные функции? В инете полно алгоритмов, можно и вручную. Самая элементарная - пузырьком
Александр Савельев
Что за пузырек?
Похожие вопросы
- Сравнение скорости сортировки выбором и сортировки слиянием (SelectionSort vs MergeSort)
- Выполните сортировку массивов ТРЕМЯ СПОСОБАМИ: методом пузырька, прямого поиска и быстрой сортировкой. С++
- Выполните сортировку массивов ТРЕМЯ СПОСОБАМИ: методом пузырька, прямого поиска и быстрой сортировкой. С++
- Задача на сортировку структур. Язык C++.
- Проблемы с сортировкой массива методом пузырька.
- КОНТРОЛЬНЫЕ ЗАДАНИЯ ПО СОРТИРОВКЕ МАССИВОВ
- С++ Сортировка массива
- Алгоритмы STL, sort, первичный и вторичный ключи для сортировки.
- Программирование, пирамидальная сортировка
- Сортировка выбором. Язык C++. Помощь с кодом.
если такие строки считать строками все в 1 строку уложится ! ахахах.
Я понимаю, что вы отсортировали значения в переменных. Но разве это соответствует условию задачи?
Допустим на основе этого задания:
Заданы количества сообщений трех пользователей: Дима =30, Миша=20, Саша=50.
Нужно вывести пользователей относительно количества их сообщений в порядке возрастания.
Ответ должен быть таким: Миша, Дима, Саша.
У вас же получится первоначальный порядок только количество сообщений у всех поменяется: Дима =20, Миша=30, Саша=50.
Вы не согласны?