Witam, mam problem z takim prostym zadaniem, a mianowicie "Rozwiń program z zadania 3 o funkcję sortującą wszystkie osoby w tablicy wg wieku." Oto mój kod:
#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;
}
Widzę, że to po prostu sortuje sam wiek, a resztę danych wypisuje tak jak była pierwotnie wpisana, lecz nie wiem jak to zmienić.
Z góry dziękuję za pomoc ;)