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 | 15850 (4324) | Horas |
» | Rabljen avto za dolge razdalje do 7.000€? (strani: 1 2 3 4 )Oddelek: Na cesti | 28028 (23531) | matobeli |
» | arhiv objav oglasov spletnega prodajalca avtomobilov (strani: 1 2 )Oddelek: Loža | 16680 (15109) | Roadkill |
» | Programiranje v C++Oddelek: Programiranje | 2658 (1516) | krneki0001 |
» | fiat bravo 1.4 sxOddelek: Loža | 5498 (4941) | stromar |