Struct sortieren(bubblesort)
-
Hallo an alle!
Ein kleines Problemchen habe ich, vielleicht habt ihr ja ne idee.
Hier ist mal er code:
do { counter=0; for(int zaehler=durchlauf;zaehler>=1;zaehler--) { if(strcmp(mensch_liste[zaehler-1].nachname,mensch_liste[zaehler].nachname)==0) { counter=1; mensch_liste[helpme] = mensch_liste[zaehler-1]; mensch_liste[zaehler-1] = mensch_liste[zaehler]; mensch_liste[zaehler] = mensch_liste[helpme]; } } } while(counter!=1);
also hier gibt er ja noch nichts aus sondern sortiert nur.
Es wird nach den dem sortiernamen sortiert.wenn ich vorher 3 nachnamen angegeben habe, wird zwar sortiert, aber er lässt einen nachnamen immer weg.
Woran liegt das
-
Erstens: strcmp() liefert 0, wenn die verglichenen Strings identisch sind - zum Vergleichen/Sortieren brauchst du strcmp()==1 (oder -1).
Zweitens: Vermutlich solltest du die Hilfsvariable für den swap außerhalb deines Daten-Arrays unterbringen
-
ok erstens habe ich verstanden.
was meinst du zum zweiten?
meinst du so?counter=1; helpme = mensch_liste[zaehler-1]; mensch_liste[zaehler-1] = mensch_liste[zaehler]; mensch_liste[zaehler] = helpme;