Witam, mam problem dotyczący mojego programu
Mianowicie mam podać 5 użytkowników, a następnie ma ich posortować według wieku
Niestety sortuje mi jedynie wiek, a resztę wypisuje normalnie. Nie wiem jak pozbyć się tego błędu.
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>
using namespace std;
struct Osoba
{
string nazwisko;
string imie;
int wiek;
int waga;
int wzrost;
};
void wypisz(Osoba *os)
{
cout << "Nazwisko: " << os->nazwisko << endl;
cout << "Imie: " << os->imie << endl;
cout << "Wiek: " << os->wiek << endl;
cout << "Waga: " << os->waga << endl;
cout << "Wzrost: " << os->wzrost << endl;
}
void wczytaj(Osoba *os)
{
cout << "Podaj nazwisko: "; cin >> os->nazwisko;
cout << "Podaj imie: "; cin >> os->imie;
cout << "Podaj wiek: "; cin >> os->wiek;
cout << "Podaj wage: "; cin >> os->waga;
cout << "Podaj wzrost: "; cin >> os->wzrost;
}
void sortuj(Osoba *tab)
{
{
int temp=0;
for (int i = 0; i < 5; i++)
for (int j = 0; j<5 - i - 1; j++)
if (tab[j].wiek>tab[j + 1].wiek)
{
temp = tab[j].wiek;
tab[j].wiek = tab[j + 1].wiek;
tab[j + 1].wiek = temp;
}
}
}
int main()
{
Osoba tab[5];
for (int i = 0; i < 5; i++)
{
wczytaj(&tab[i]);
}
cout << endl;
cout << "Dane wypisane na ekranie wg wieku: " << endl;
sortuj(tab);
for (int i = 0; i < 5; i++)
{
wypisz(&tab[i]);
}
system("pause");
return 0;
}