Wie korrigiere ich meinen CountSort-Code, damit er absteigend sortiert?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Code als Bilder sind natürlich pfui.

Was allerdings fehlt: Wo wird SortDriection als Typ definiert und was sind ASCENDING und DESCENDING.

Undabhängig davon sieht das Vorgehen ansich okay aus, Du könntest in extract_sort_dirdction() mal printf() nutzen:

printf("%s<\n",order);
if (strcmp(order,"asc") == 0){
    printf("Sort Ascending:%...\n",ASCENDING);
    return ASCENDING;
}
if (strcmp(order,"desc") == 0){
    printf("Sort Descending:%...\n",DESCENDING);
    return DESCENDING;
}

Anstatt der Punkte sollte natürlich der richtige qualifier für den Typ rein.

Wie dem auch sei, ansich wäre eh folgendes naheliegend:

if(strcmp(order,"desc")==0) return DESCENDING;
if(strcmp(oder,"asc")!=0) printf("Invalid direction, defaulting to ASCENDING\n");
return ASCENDING;

Kleistere doch mal alles mit Ausgaben voll (und mach ein flusch jeweils danach), dann solltest du sehen, wo es schief geht bzw. welcher Progammteil ausgeführt wird.

Auf den ersten Blick sieht es an sich korrekt aus.