In dieser Frage erhalten wir einen Datensatz eines Schülers, der die Schülernummer, den Namen und den Prozentsatz enthält. Unsere Aufgabe besteht darin, ein C-Programm zu erstellen, das Studentendatensätze als Strukturen speichert und nach Namen sortiert.
Nehmen wir ein Beispiel, um dieses Problem zu verstehen:
Eingabe - Schülerdatensatz =
{{ student_id = 1, student_name = nupur, student_percentage = 98}, { student_id = 2, student_name = Akash, student_percentage = 75}, { student_id = 3, student_name = Yash, student_percentage = 62}, { student_id = 4, student_name = Jyoti, student_percentage = 87}, { student_id = 5, student_name = Ramlal, student_percentage = 80}}
Ausgabe − Schülerdatensatz =
{{ student_id = 2, student_name = Akash, student_percentage = 75}, { student_id = 4, student_name = Jyoti, student_percentage = 87}, { student_id = 1, student_name = nupur, student_percentage = 98}, { student_id = 5, student_name = Ramlal, student_percentage = 80}, { student_id = 3, student_name = Yash, student_percentage = 62}}
Um dieses Problem zu lösen, erstellen wir zunächst eine Speicherstruktur für Schülerdetails . Jetzt verwenden wir die Funktion qsort() und definieren in dieser Funktion eine Vergleichsfunktion, die die Namen der Strukturen mithilfe der Methode strcmp() vergleicht.
Programm zum Speichern von Studentendatensätzen als Struktur und zum Sortieren nach Namen
Online-Demo
//C program to store Student records as Structures and Sort them by Name #include <stdio.h> #include <stdlib.h> #include <string.h> struct Student { int student_id; char* student_name; int student_percentage; }; int comparator(const void* s1, const void* s2){ return strcmp(((struct Student*)s1)->student_name,((struct Student*)s2)->student_name); } int main() { int n = 5; struct Student arr[n]; //student 1 arr[0].student_id = 1; arr[0].student_name = "Nupur"; arr[0].student_percentage = 98; //student 2 arr[1].student_id = 2; arr[1].student_name = "Akash"; arr[1].student_percentage = 75; //student 3 arr[2].student_id = 3; arr[2].student_name = "Yash"; arr[2].student_percentage = 62; //student 4 arr[3].student_id = 4; arr[3].student_name = "Jyoti"; arr[3].student_percentage = 87; //student 5 arr[4].student_id = 5; arr[4].student_name = "Ramlal"; arr[4].student_percentage = 80; printf("Unsorted Student Record:</p><p>"); for (int i = 0; i < n; i++) { printf("Id = %d, Name = %s, Age = %d </p><p>", arr[i].student_id, arr[i].student_name, arr[i].student_percentage); } qsort(arr, n, sizeof(struct Student), comparator); printf("</p><p></p><p>Student Records sorted by Name:</p><p>"); for (int i = 0; i < n; i++) { printf("Id = %d, Name = %s, Age = %d </p><p>", arr[i].student_id, arr[i].student_name, arr[i].student_percentage); } return 0; }
Unsorted Student Record: Id = 1, Name = Nupur, Age = 98 Id = 2, Name = Akash, Age = 75 Id = 3, Name = Yash, Age = 62 Id = 4, Name = Jyoti, Age = 87 Id = 5, Name = Ramlal, Age = 80 Student Records sorted by Name: Id = 2, Name = Akash, Age = 75 Id = 4, Name = Jyoti, Age = 87 Id = 1, Name = Nupur, Age = 98 Id = 5, Name = Ramlal, Age = 80 Id = 3, Name = Yash, Age = 62
Das obige ist der detaillierte Inhalt vonDas C-Programm speichert Schülerdatensätze in einer Struktur und sortiert sie nach Namen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!