Programowanie i algorytmy

Sortowanie trzech liczb

Zadanie 1. Napisz funkcję, która posortuje liczby zapisane w zmiennych a, b i c w rosnącej kolejności. Użyj wskaźników.

 

Wejście

Trzy liczby całkowite.

Wyjście

Posortowane liczby z wejścia.

Rozwiązanie.

Strategia jest następująca:

szukamy liczby najmniejszej i podstawiamy ją pod zmienną a, następnie szukamy mniejszej z liczb b i c, i zastępujemy nią zmienną b. Pozostała wartość zostaje zapisana w c.

#include<iostream>
#include<cstdlib>
using namespace std;
 
//funkcja zamieniająca wartości zmiennych
void zamien(int *a, int *b)
{
    int pom = *a;
        *a = *b;
        *b = pom;
}
 
//funkcja sortująca trzy zmienne
void sortuj(int *a, int *b, int *c)
{
        if(*a>*b)
                zamien(a,b);
        if(*a>*c)
                zamien(a,c);
        if(*b>*c)
                zamien(b,c);
}
 
int main()
{
        int a, b, c;
 
        cout<<"Podaj trzy liczby: ";
        cin>>a>>b>>c;
 
        sortuj(&a,&b,&c); //sortowanie liczb
 
        cout<<"Liczby posortowane: "<<a<<" "<<b<<" "<<c<<endl;
 
        system("pause");
        return 0;
}