在这个问题中,我们被给定一个学生的记录,其中包含学生的学号、姓名和百分比。我们的任务是创建一个C程序,将学生记录存储为结构,并按照姓名对它们进行排序。
让我们举一个例子来理解这个问题,
输入 – 学生记录 =
{{ 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}}
登录后复制
输出 − 学生记录 =
{{ 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}}
登录后复制
为了解决这个问题,我们首先会创建一个存储学生详细信息的结构。现在,我们将使用qsort()函数,并在该函数中定义一个比较器函数,该函数将使用strcmp()方法比较结构的名称。
示例
将学生记录存储为结构并按名称排序的程序
在线演示
//C program to store Student records as Structures and Sort them by Name#include #include #include 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:"); for (int i = 0; i
", arr[i].student_id, arr[i].student_name, arr[i].student_percentage); } qsort(arr, n, sizeof(struct Student), comparator); printf("
Student Records sorted by Name:
"); for (int i = 0; i
", arr[i].student_id, arr[i].student_name, arr[i].student_percentage); } return 0;}
登录后复制
输出
Unsorted Student Record:Id = 1, Name = Nupur, Age = 98Id = 2, Name = Akash, Age = 75Id = 3, Name = Yash, Age = 62Id = 4, Name = Jyoti, Age = 87Id = 5, Name = Ramlal, Age = 80Student Records sorted by Name:Id = 2, Name = Akash, Age = 75Id = 4, Name = Jyoti, Age = 87Id = 1, Name = Nupur, Age = 98Id = 5, Name = Ramlal, Age = 80Id = 3, Name = Yash, Age = 62
登录后复制
以上就是C程序以结构体存储学生记录,并按姓名进行排序的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2586989.html