Für unser Praxisblatt müssen wir eine Struktur erstellen, die Flussdaten verwendet. Die Struktur ist:Verwenden von qsort() und Structs in C
struct river
{
char name[40]; //name of river max 40 char long
int length;
int drainage_area;
}
Und die Daten soll von der größten zur kleinsten Flusslänge organisiert werden unter Verwendung einer Datei mit dem Namen data.txt. Diese Datei hat die folgenden Informationen:
Nil 6650 334900
Amazon 6400 6915000
Yangtze 6300 1800000
Mississippi-Missouri 6275 2980000
Jenissei-Angara-Selenga 5539 2580000
Gelb 5464 745000
Ob-Irtysch 5410 2990000
Kongo-Chambeshi 4700 3680000
Ich weiß also, die Funktion qsort für die Verwendung von(), benötigen Sie eine Vergleichsfunktion. Allerdings bin ich mir nicht sicher, wie ich das machen soll, wenn eine Datei involviert ist. Ich habe folgendes für die Vergleichsfunktion (allgemeine Vergleichsfunktion):
int compare_rivers(void *r1, void *r2)
{
int *_r1 = (int *)r1;
int *_r2 = (int *)r2;
if(*_r1 > *_r2)
{
return -1;
}
if (*_r1 == *_r2)
{
return 0;
}
return 1;
}
Meine Frage ist: Wie implementieren die Funktion vergleichen und dann die Haupt? Ich weiß, wie man Dateien öffnet und liest, aber ist das anders als die Verwendung von Arrays?
Eine Erklärung wäre wirklich hilfreich! Ich frage nicht nach einem vollwertigen Code. Ich möchte nur eine Erklärung/ein Beispiel, wie ich das machen würde! Danke im Voraus!