Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C menyimpan rekod pelajar dalam struktur dan menyusunnya mengikut nama

Program C menyimpan rekod pelajar dalam struktur dan menyusunnya mengikut nama

王林
王林ke hadapan
2023-08-26 15:17:061040semak imbas

Program C menyimpan rekod pelajar dalam struktur dan menyusunnya mengikut nama

Dalam soalan ini, kami diberikan rekod pelajar yang mengandungi nombor, nama dan peratusan pelajar. Tugas kami ialah mencipta program C yang menyimpan rekod pelajar sebagai struktur dan menyusunnya mengikut nama.

Mari kita ambil contoh untuk memahami masalah ini,

Input - Rekod pelajar =

{{ 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}}

Output − Rekod pelajar =

{{ 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}}

, kami akan buat storan terlebih dahulu untuk menyelesaikan masalah ini . Sekarang, kita akan menggunakan fungsi qsort() dan dalam fungsi ini tentukan fungsi pembanding yang akan membandingkan nama struktur menggunakan kaedah strcmp().

Contoh

Program untuk menyimpan rekod pelajar sebagai struktur dan mengisih mengikut nama

Demo dalam talian

//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;
}

Output

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

Atas ialah kandungan terperinci Program C menyimpan rekod pelajar dalam struktur dan menyusunnya mengikut nama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam