0

Почти дописал код и столкнулся с проблемой в одном из модулей кода. Если числа разные легко сортирует, но если одинаковые ничего не выводит. Что не так? ( Я вводил 1 1 2, или 2 2 3 к примеру)введите сюда описание изображения

#include <iostream>
int main()
{
    int a, b, c;
    std::cin >> a >> b >> c;
    if ((a > b) && (b > c)) std::cout << c << b << a;
    else if ((a > c) && (c > b))   std::cout << b << " " << c << " " << a;
    else if ((b > c) && (c > a))   std::cout << a << " " << c << " " << b;
    else if ((b > a) && (a > c))   std::cout << c << " " << a << " " << b;
    else if ((c > a) && (a > b))   std::cout << b << " " << a << " " << c;
    else if ((c > b) && (b > a))   std::cout << a << " " << b << " " << c;
    else if ((a == b) && (b == c)) std::cout << a << " " << b << " " << c;
    else if ((a == b) && (b > c))  std::cout << c << " " << b << " " << a;
    else if ((a == c) && (c > b))  std::cout << b << " " << a << " " << c;
    else if ((b == c) && (b > a))  std::cout << a << " " << b << " " << c;
    return 0;

}

(PS: я наверное перепутал битовые и логические операторы, но это не точно)

2 Answers2

1
else if ((a == b) && (b < c))  std::cout << a << " " << b << " " << c;

//добавьте эту условия и работает так, как вы хотели.
Mukhriddin
  • 46
  • 4
0

Рекомендую использовать для этого не кучу условий, а какую-нибудь встроенную функцию, благо в плюсах такая есть. Код ниже при должном желании можно переделать даже для сортировки N чисел. Сейчас он написан для работы с тремя числами как ты и просил, причём числа могут быть и повторяющимися - программа не сломается.

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

void main() { setlocale(LC_ALL, "RUS"); cout << "Введите сразу 3 числа" << endl; int a, b, c; cin >> a >> b >> c; vector<int> sorted = vector<int>(); sorted.push_back(a); sorted.push_back(b); sorted.push_back(c);

sort(sorted.begin(), sorted.end());

cout << "Отсортированный вектор из трёх чисел" << endl; for (int i = 0; i < sorted.size(); i++) cout << sorted[i] << endl; }