Funkcja sortująca dwie liczby

0

Mam do napisania funkcję pobierającą jako argumenty 2 liczby typu całkowitego, która je posortuje w
porządku rosnącym. Przekazać dane przez referencje. Napisałem taki kod ale nie wiem co jest nie tak.

#include <iostream>
using namespace std;

int x, y;

int sortuj(int & a, int & b){
    if ( a > b){
    int maks = a;
    int minim = b;
    }
    else
    {
      int maks = b;
      int minim = a;
    return(a, b);
    }
}
int main()
{
    cout<<"Podaj x"<<endl;
    cin>>x;
    cout<<"Podaj y"<<endl;
    cin>>y;
    sortuj(x, y);
    cout<<sortuj(x, y);

    return 0;
    }
1
    cout<<sortuj(x, y);

Czego tutaj oczekujesz? Twoja funkcja zwraca tylko w jednym przypadku i to zupełnie bezsensownie. W ogóle nazwanie tego sortowaniem to spore naciąganie.

"posortowałeś", to wypisz te liczby, a nie wywołuj funkcję ponownie. Poza tym, zainteresuj się std::swap, bo ta funkcja powinna mieć jedną linijkę.

1

Problemem jest to że tam nie ma sortowania.
Czy w treści zadania nie było mowy o tablicy?
Poza tym
return(a, b)
To się kompiluje?

0
void sortuj(int &a, int &b){
    if (a <= b) return;
    a = a - b;
    b = b + a;
    a = b - a;
}

http://cpp.sh/4jswc

0

Dzięki wszystkim za odpowiedzi, dopiero się uczę i poczytam o tym wszystkim co tutaj napisaliście.

1 użytkowników online, w tym zalogowanych: 0, gości: 1