C程序以结构体存储学生记录,并按姓名进行排序

c程序以结构体存储学生记录,并按姓名进行排序

在这个问题中,我们被给定一个学生的记录,其中包含学生的学号、姓名和百分比。我们的任务是创建一个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

(0)
上一篇 2025年3月6日 15:27:34
下一篇 2025年3月6日 15:27:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在C语言中,指针是指向结构体的指针

    结构体指针保存了整个结构体的加法。 它用于创建复杂的数据结构,如链表、树、图等。 成员可以使用称为箭头运算符 ( -> ) 的特殊运算符来访问结构体。 声明 以下是 C 编程中指向结构体的指针的声明 – struct ta…

    2025年3月6日
    200
  • 编写一个C程序来显示结构成员的大小和偏移量

    问题 编写一个C程序来定义结构体并显示成员变量的大小和偏移量 结构体 – 它是一个不同数据类型变量的集合,组合在一个名称下。 结构声明的一般形式 datatype member1;struct tagname{   dataty…

    2025年3月6日
    200
  • 使用结构体编写的C程序,用于计算圆和圆柱体的面积

    在C编程语言中,我们可以利用结构体来找到圆的面积、圆柱体的面积和体积。 用于找到圆的面积的逻辑如下: s.areacircle = (float)pi*s.radius*s.radius; 登录后复制用于计算圆柱体的面积的逻辑如下: s.a…

    2025年3月6日
    200
  • 在C语言中,结构体(Structure)和数组(Array)之间的区别是什么?

    在 C 中,结构体和数组都用作数据类型的容器,即在结构体和数组中我们都可以存储数据,也可以对它们执行不同的操作。 基于内部实现,以下是两者之间存在一些基本差异。 Sr.编号 键 结构 数组 1定义结构体可以定义为一种数据结构,用作容器,可以…

    2025年3月6日
    200
  • C++程序:按字母顺序重新排列单词的位置

    在这个问题中,一个字符串被作为输入,我们必须按字典顺序对字符串中出现的单词进行排序。为此,我们为字符串中的每个单词(之间用空格区分)分配一个从 1 开始的索引,并以排序索引的形式获得输出。 String = {“Hello”, “World…

    2025年3月6日
    200
  • 对一个包含两种类型元素的数组进行排序

    有不同的方法来对只包含两种元素(即只有1和0)的数组进行排序。我们将讨论三种不同的方法来实现这个目标。第一种方法简单地使用预定义的sort()函数对给定的数组进行排序。第二种方法是计数排序方法,我们将计算0和1的数量,然后通过首先写入0的次…

    2025年3月6日
    200
  • 基数排序的C程序

    排序算法是一种按特定顺序排列列表组件的算法。最常用的顺序是数字顺序和字典顺序。 基数排序是一种非比较排序算法。基数排序算法是未排序列表的首选算法。 它通过最初对相同位值的各个数字进行分组来对元素进行排序。基数排序的思想是按照递增/递减顺序从…

    2025年3月6日
    200
  • C++程序按值对字典进行排序

    有一些被称为字典的数据结构在各种计算机语言中可用。一种特殊形式的更快的数据结构,它根据键和值存储数据,就是字典。它将键值对保留在那里,以便可以通过键快速搜索某些组件,几乎实时。类似字典的数据结构包含在C++ STL语言标准中。这个数据结构被…

    2025年3月6日
    200
  • 使用STL根据因子数量进行排序

    使用STL对向量进行排序是小菜一碟。我们可以使用著名的sort()函数来完成这个任务。真正的挑战是计算每个数字的因子数量。 因子是能够完全整除另一个数的数字,即余数为零。 遍历所有数字以计算因子可能是一种方法,但我们将在本文中尝试优化和达到…

    2025年3月6日
    200
  • 按字符的ASCII值对字符串进行排序

    ASCII 值 ASCII(美国信息交换标准代码)是计算机和互联网上文​​本数据最常见的字符编码格式。在标准 ASCII 编码数据中,256 个字母、数字或特殊附加字符和控制代码都有唯一值。 问题陈述 现在,在这个问题中,我们需要根据字符的…

    2025年3月6日
    200

发表回复

登录后才能评论