Čau,
jsem začátečník a potřeboval bych poradit jak třídit jména ve struktuře podle počtu jmen. Strukturu mám naplněnou jmény,
které se tam opakují. Výsledek by měl vpadat tak, že jméno, které se nejvíce vyskytuje ve struktuře, bude na prvním místě.
Zkoušel jsem to zatím tak, že jsem porovnával jednotlivé jména mezi sebou, ale nevim jestli jsem na správné cestě.
typedef struct prestupky
{
char jmeno[20];
float kc;
t_kat kat;
int den;
int mesic;
int rok;
}prestupky;
//tohle je muj pokus jak třídit ( r je celkový počet jmen) :
char k;
prestupky *pres[100];
for (i=0;i<r;i++)
for(j=0;j<r;j++)
char *k=strstr(pres[i]->jmeno, pres[j]->jmeno);
Fórum › C / C++
Seřazení structury podle podle počtu jmen
Samozřejmě to musíš dělat přes porovnání jmen. Když to podle nich rozlišuješ, tak to ani jinak nejde (BTW jde, ale to v tomto případě ani není nutné). A lepší použít funkci strcmp než strstr. To jen tak na okraj.
Napadá mě několik možností.
V první případě uděláš to, co děláš ... porovnáš všechno se vším, někam si uložíš výsledek jméno-počet a nakonec to přeoráš podle těchto výsledků.
Druhá metoda je jenom modifikace, kdy si položky nejprve setřídíš (tj. budeš mít stejná jména za sebou). Budou se ti lépe počítat, ale to je asi tak vše. Přeorat je budeš muset taky.
No a poslední je možná časově nejlepší, ale paměťově nejhorší :smile1: . Vytvoříš si separátní datové struktury (asi seznamy), do který budeš ukládat záznamy podle jmen k sobě. Nakonec je budeš "vracet" do původního pole v pořadí od těch nejpočetnějších.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Seřazení podle počtu záznamů — založil Tomáš
Seřazení podle data — založil W4RDON
Seřazení polí podle velikosti — založil lukas0123
Vytažení skupin a seřazení podle zastoupení — založil Matěj Andrle
Množina - seřazení podle atributu objektu — založil Ed
Moderátoři diskuze