Zadanie: sortowanie 3 liczb

0

Treść zadania:Napisz program wczytujący z klawiatury 3 liczby rzeczywistea następnie wyświetlający je w kolejności rosnących wartości.
Moje rozwiązanie:

#include <iostream>
using namespace std;
int main()
{
	double a, b, c, max, min, med;
	cout << "podaj 3 liczby" << endl;
	cin >> a >> b >> c;
	max = 0; min = 0; med = 0;
	if (a >= b && a >= c)
	{
		max = a;
		if (c <= b)
		{
			min = c;
			med = b;
		}
		else min = b; med = c;
	}
	if (b >= a && b >= c)
	{
		max = b;
		if (a <= c)
		{
			min = a; med = b;
		}
		else min = c; med = a;
	}
	if (c >= a && c >= b)
	{
		max = c;
		if (a <= b)
		{
			min = a; med = b;
		}
		else min = b; med = a;
	}
	cout << min << " " << med << " " << max;
} 

Program się kompiluje i działa przy kombinacjach wpisanych liczb :2,3,1 2,1,3 3,1,2
Ale przy kombinacji np. 1,2,3 lub 3,2,1 wyświetla 1,1,3. Ktoś pomoże znaleźć błąd?

0

Czy masz zakaz używania tablic i chociażby sortowania bąbelkowego ?

0

Mogę używać tablic, ale o sortowaniu bąbelkowym jeszcze nie słyszałem.

0

To polecam poczytać, jak to robisz C to implementacje znajdziesz na wiki. No i wypadałoby wcześniej przeczytać chociaż jak ten algorytm działa. Ogólnie zastosowanie tego algorytmu, nie dość że uprości Ci kod - to będzie na tyle uniwersalne że posortujesz też więcej liczb

3
  1. minimum kodu:
#include <algorythm>
#include <iostream>
using namespace std;

int main()
  {
   double a,b,c;
   cout<<"podaj 3 liczby: ";
   cin>>a>>b>>c;
   if(a>b) swap(a,b);
   if(a>c) swap(a,c);
   if(b>c) swap(b,c);
   cout<<a<<' '<<b<<' '<<c<<endl;
   return 0;
  }
  1. minimum porównań:
#include <iostream>
using namespace std;

int main()
  {
   double a,b,c;
   cout<<"podaj 3 liczby: ";
   cin>>a>>b>>c;
   if(a<b)
     {
      if(a<c)
        {
         if(b<c) cout<<a<<' '<<b<<' '<<c<<endl;
         else    cout<<a<<' '<<c<<' '<<b<<endl;
        }
      else       cout<<c<<' '<<a<<' '<<b<<endl;
     }
   else
     {
      if(a<c)    cout<<b<<' '<<a<<' '<<c<<endl;
      else
        {
         if(b<c) cout<<b<<' '<<c<<' '<<a<<endl;
         else    cout<<c<<' '<<b<<' '<<a<<endl;
        }
     }
   return 0;
  }

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