Forum » Programiranje » C++ sort -> help
C++ sort -> help
robotek87 ::
mam en problem.. za solo morm nardit program k naj bi vpisau ime, model in leto avta in nato vse posortirav po letnicah.. ampak meni posortira samo letnice, imena in modele pa pripise k drugim letnicam...
Vpisi znamko 1 avtomobila :ferari
Vpisi model 1 avtomobila :f40
Vpisi letnico 1 avtomobila :2000
Vpisi znamko 2 avtomobila :bmw
Vpisi model 2 avtomobila :m5
Vpisi letnico 2 avtomobila :2004
Vpisi znamko 3 avtomobila :zastava
Vpisi model 3 avtomobila :101
Vpisi letnico 3 avtomobila :1987
Vpisi znamko 4 avtomobila :ford
Vpisi model 4 avtomobila :mondeo
Vpisi letnico 4 avtomobila :1999
Avtomobili sortirani od najnovejsega do najstarejsega::
2004 ferari f40
2000 bmw m5
1999 zastava 101
1987 ford mondeo
#include <iostream.h> #include <fstream.h> #include <algorithm> struct car { char ime[50]; char model[50]; int leto; }; void main() { int i,j,st_avtov,maxi; int max; car avto[100]; fstream data("data.dat",ios::in | ios::out); cout<<"Koliko avtomobilov zelite vpisati: "; cin >> st_avtov; cout<<endl<<endl; for (i=1; i<=st_avtov;i++) { cout<< "Vpisi znamko "<<i<<" avtomobila :"; cin>> avto[i].ime; cout << "Vpisi model "<<i<<" avtomobila :"; cin >> avto[i].model; cout << "Vpisi letnico "<<i<<" avtomobila :"; cin>> avto[i].leto; data<<avto[i].ime<<endl; data<<avto[i].model<<endl; data<<avto[i].leto<<endl; cout<<endl<<endl; } i=1; data.seekg(0); while(!data.eof() && i <= st_avtov) { data>>avto[i].ime>>avto[i].model>>avto[i].leto; i++; } data.seekg(0); cout<<" Avtomobili sortirani od najnovejsega do najstarejsega:: "<<endl; for (i=1;i<=st_avtov;i++) { max=avto[i].leto; maxi=i; for (j=i; j <= st_avtov;j++) { if (avto[j].leto>max) { max=avto[j].leto; maxi=j; } } avto[maxi].leto = avto[i].leto; avto[i].leto=max; data<<avto[i].leto<<" "<<avto[i].ime<<" "<<avto[i].model<<endl; cout<<avto[i].leto<<" "<<avto[i].ime<<" "<<avto[i].model<<endl; } data.close(); }
- spremenil: Vesoljc ()
AndrejS ::
Napaka je pri sortiranju. Ti zamenjaš samo letnice ne pa celega objekta! ( avto[i].leto ) namesto (avto[i]) !
3p ::
Namesto tistih prirejanj za zanko j (pred izpisom) daj:
car zacasni = avto[i];
avto[i] = avto[maxi]; //to postavi cel avto najvisjega letnika na i-to mesto
avto[maxi] = zacasni; //to pa pokrbi da tistega kar je bilo prej na mestu i ne izgubimo
car zacasni = avto[i];
avto[i] = avto[maxi]; //to postavi cel avto najvisjega letnika na i-to mesto
avto[maxi] = zacasni; //to pa pokrbi da tistega kar je bilo prej na mestu i ne izgubimo
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Forza Horizon 3 (strani: 1 2 3 )Oddelek: Igre | 15119 (3593) | Horas |
» | Rabljen avto za dolge razdalje do 7.000€? (strani: 1 2 3 4 )Oddelek: Na cesti | 25320 (20823) | matobeli |
» | arhiv objav oglasov spletnega prodajalca avtomobilov (strani: 1 2 )Oddelek: Loža | 15723 (14152) | Roadkill |
» | Programiranje v C++Oddelek: Programiranje | 2569 (1427) | krneki0001 |
» | fiat bravo 1.4 sxOddelek: Loža | 5404 (4847) | stromar |