1那段代码也可以写成如下
struct Student{
....
....
}name
int paixu(const void *a,const void *b)
name aa=*(name*a);
name bb=*(name*b);
2那段代码也可以写成这
return aa->score > bb->score ? 1 : -1;//升序排序
------------------------------------------------
return aa->score > bb->score ? -1 : 1;//降序排序

1.“->”:是指针运算符,用于从结构体中提取数据。

如下的aa->score就是从Student中提取出score的值。

2.“ > ? :”:三目运算符

如下的aa中的score < bb中的score ? 1 : -1可以看成:如果aa中的score小于bb中的score就返回1,否则返回-1.

3.qsort函数:

void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))base -- 指向要排序的数组的第一个元素的指针。
nitems -- 由 base 指向的数组中元素的个数。
size -- 数组中每个元素的大小,以字节为单位。
compar -- 用来比较两个元素的函数。

如下用了chucun——第一个元素的指针, 5,——数组中元素的个数, sizeof(chucun[0])——数组中每个元素的大小, paixu——比较函数

4.(const void *a,const void *b)

const:只可读的常量

void*:空类型(即可以是任何类型)

a:一个指针

5.struct Student* aa = (struct Student*)a;

在4中说过,a为空类型无法与同为空类型的b比较,所以我们进行数据转换(具体是转为Student类型),并将装换后的数值存在aa中。类似于 int b =(int)a;

#include<stdio.h>
#include<stdlib.h>struct Student {int xuehao;char name[20];float score;};1int paixu(const void* a, const void* b){struct Student* aa = (struct Student*)a;1struct Student* bb = (struct Student*)b;1return (aa->score < bb->score ? 1 : -1);2}int main(){struct Student chucun[5] = { {10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86},{10108,"Ling",73.5},{10110,"Fun",100}};qsort(chucun, 5, sizeof(chucun[0]), paixu);int i;for (i = 0; i < 5; i++){printf("%d %s %.2f\n", chucun[i].xuehao, chucun[i].name,chucun[i].score);}return 0;}

Ps:加个关注一起讨论问题!

C语言用结构体排序(学号,姓名,成绩)相关推荐

  1. C语言实现结构体输入学号姓名成绩并按照成绩高低排序输出

    #include <stdio.h> struct student{char name[10];long member;int score; } stu[100],stutemp; //定 ...

  2. 【C语言】结构体排序

    这里写目录标题 快速排序 结构体排序 模仿qsort函数实现冒泡排序 三级目录 快速排序 //快速排序 void qsort(void* base, //base中存放待排序数据中第一个对象地地址si ...

  3. C语言基础 结构体排序

    任务描述 本关任务:有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息. 相关知识 参考结构体第1关相关知识 编程要求 要求按照成绩的高低顺序输出学生的信息. 测试说明 平 ...

  4. c语言程序结构体排序,C语言结构体排序方法

    #include "stdafx.h" #include #include #include using namespace std; struct student { strin ...

  5. c语言程序结构体排序,如何用C语言的结构体数组中的某一值排序?

    [C] 纯文本查看 复制代码#include "stdio.h" #include "string.h" struct student { char name[ ...

  6. c语言咋样编程学号,C语言 用结构体类型数组编程实现输入5个学生的学号姓名平时成绩期中成绩和期末成绩然后输出每位...

    满意答案 zhyx520325 推荐于 2020.12.09 采纳率:41%    等级:10 已帮助:1973人 #include #include //C语言 用结构体类型数组编程实现输入5个学生 ...

  7. python列表输出学生姓名学号链表_c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添加,删除,查询,排序,平均)...

    展开全部 代码如下: /*用c语言链表编写一个学生信息系统程序,62616964757a686964616fe4b893e5b19e31333365656636要求输出学生的学号,姓名,性别, 学号, ...

  8. C语言中对结构体排序

    在C语言中对结构体排序 用qsort()函数进行排序, qsort()里面要传入4个参数–qsort(数组名,数组长度,sizeof(),排序方法) 实验9-5 查找书籍 (20分) 给定n本书的名称 ...

  9. C语言 · 运用结构体的排序方法

    AllSight C语言 · 运用结构体的排序方法 之前遇到排序只想着最原始的方法,诸如冒泡,选择,快速排序等等,刚刚跟大牛学会了结构体的方法来排序,这样的话以后再也不用怕成绩统计.名次排序之类的题目 ...

最新文章

  1. 设置了hover伪类中有cursor:hand但是没有效果
  2. java反射重要么_JAVA反射----这些知识你需要知道
  3. iis 404错误从定向完美方案
  4. script 标签到底该放在哪里
  5. php flush 逐行显示_PHP逐行输出(ob_flush与flush的组合)
  6. 【最短路径】 SPFA算法优化
  7. 用计算机组成原理+唐朔飞的,计算机组成原理(唐朔飞) 课件.ppt
  8. 不用下载Axure RP Extension for Chrome插件,即可看原型文件
  9. 在 CentOS 中部署 KMS 服务器(vlmcsd)
  10. win10如何强制删除文件
  11. 游戏视频怎么录制,游戏录制软件哪个好
  12. Code Smell 检测工具调研
  13. office 2010 在安装过程中出错
  14. 决策树--CART算法
  15. 自制的Arduino多级菜单类
  16. c语言怎样处理lrc文件格式,lrc文件的一般格式是什么_教你如何打开lrc文件 - 驱动管家...
  17. I2C中的10bit地址读写
  18. springboot基于安卓的移动数字图书馆的设计与实现毕业设计源码030911
  19. 第四届橙瓜网络文学奖20年十佳言情大神天下归元暂时排第三名
  20. 解决Intellij IDEA 一直在indexing....,导致idea很卡,无法操作

热门文章

  1. 查询oracle表中的字段名和字段类型
  2. 【java面试】多线程如果线程挂住了怎么办
  3. [有点意思]通天塔导游:各种编程语言的优缺点
  4. Android平台接入Html5产品的个人总结
  5. AVRmega16通过一个定时器实现多路IO口输出多路可调的PWM
  6. SQL创建视图时设置默认值
  7. [RHEL5企业级Linux服务攻略]--第4季 DNS服务全攻略
  8. vscode调试python变量窗口空白_vscode窗口崩溃解决(vscode终端一片空白)
  9. 搭稳Netty开发的地基,用漫画帮你分清同步异步阻塞非阻塞
  10. 流量红利消减,酷开系统技术驱动突出重围