» »

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]) !

robotek87 ::

ja kr hocem po letnicah... drugač itaq negre!

3p ::

Ja, ampak primerjat moraš po letnicah, menjevat pa celotne zapise/objekte...

robotek87 ::

in kako naj to naredim?

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

robotek87 ::

:D hvala ti


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Forza Horizon 3 (strani: 1 2 3 )

Oddelek: Igre
11015118 (3592) Horas
»

Rabljen avto za dolge razdalje do 7.000€? (strani: 1 2 3 4 )

Oddelek: Na cesti
15525320 (20823) matobeli
»

arhiv objav oglasov spletnega prodajalca avtomobilov (strani: 1 2 )

Oddelek: Loža
7015722 (14151) Roadkill
»

Programiranje v C++

Oddelek: Programiranje
352569 (1427) krneki0001
»

fiat bravo 1.4 sx

Oddelek: Loža
355404 (4847) stromar

Več podobnih tem