diana.2020 Geschrieben 1. Februar 2012 Geschrieben 1. Februar 2012 Hallo kann mir jemande in diese Aufgabe helfen ??? Gegeben sei die folgende Datenstruktur für Speicherung von Studentendaten typedef struct { char Name[20]; unsigned long Matrikelnummer; } StudentT; wowie eine Funktion compareByName, die zwei Studentendatensätze s1 und s2 nach dem Namen vergleicht. Die Funktion liefert einen Wert < 0 zurück, falls der Name von s1 kleiner ist als der von s2, 0 falls die Namen gleich sind und einen Wert > 0 falls Name von s2 größer als der von s1. int compareByName(StudentT s1, StudentT s2){ return strcmp(s1.Name, s2.Name); } 1. Definieren Sie eine Funktion sortStudents, welche ein Array von StudentTElementen nach einem durch eine „Call-Back“-Funktion vorgegebenes Vergleichskriterium sortiert. Der Funktion sollen drei Parameter übergeben werden: s = zu sortierendes Array von Studenten, n = Anzahl Elemente des Arrays und cmp = Zeiger auf eine Vergleichsfunktion mit einer Signatur entsprechend den obigen Vergleichsfunktionen. Verwenden Sie für die Implementierung einen Sortieralgorithmus Ihrer Wahl. 2. Schreiben Sie ein Hauptprogramm, in dem ein (kleines, mindestens drei Elemente umfassendes) Array von Studenten definiert und initialisiert wird. Notieren Sie die Anweisungen um dieses Array mit Hilfe der Funktion sortStudents nach Name bzw. nach Matrikelnummer zu sortieren. danke für Ihre Hilfe Zitieren
diana.2020 Geschrieben 1. Februar 2012 Autor Geschrieben 1. Februar 2012 für 1)--> #include <stdlib.h> int compareByName(const void* _s1, const void* _s2) { if (*s1 > *s2) return1; else if(*s1 == *s2) return 0; else return -1; } void Student() { char* s=studentT; qsort((void*) s,20,sizeof(s[0]),compareByName); } ??? Zitieren
Thanks-and-Goodbye Geschrieben 1. Februar 2012 Geschrieben 1. Februar 2012 Sollen wir jetzt deine Hausaufgaben machen? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.