今天学习当中,在编写结构体程序时发生了一件很搞笑的事。

输入五个同学的姓名、三科成绩、与平均分。按照平均分进行大小排序输出

第一次使用这样的代码

#include<stdio.h>
int main()
{struct student{char n[100];int a;int b;int c;float d; }stu[5];for(int i=0;i<5;i++){scanf("%s",stu[i].n);scanf("%d",&stu[i].a);scanf("%d",&stu[i].b);scanf("%d",&stu[i].c);stu[i].d=(stu[i].a+stu[i].b+stu[i].c)*1.0/3;}int temp; for(int i=0;i<5;i++){for(int j=i+1;j<5;j++){if(stu[i].d>stu[j].d){temp=stu[i].d;stu[i].d=stu[j].d;stu[j].d=temp;}}}printf("\n");for(int i=0;i<5;i++){printf("%s ",stu[i].n);printf("%f\n",stu[i].d);}
}

输入结果是这样的

这个是在这几行

仅仅交换的是平均值???!!

我们要通过以平均成绩为基础,对整个结构体进行排序

正确代码

#include<stdio.h>
int main()
{struct student{char n[100];int a;int b;int c;float d; }stu[5];for(int i=0;i<5;i++){scanf("%s",stu[i].n);scanf("%d",&stu[i].a);scanf("%d",&stu[i].b);scanf("%d",&stu[i].c);stu[i].d=(stu[i].a+stu[i].b+stu[i].c)*1.0/3;}struct student temp;//创造一个“结构体”类型的“temp" for(int i=0;i<5;i++){for(int j=i+1;j<5;j++){if(stu[i].d>stu[j].d){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}}}printf("\n");for(int i=0;i<5;i++){printf("%s ",stu[i].n);printf("%f\n",stu[i].d);}
}

这样结果才正确

这样才是进行结构体整体排序

关键在于创造一个“结构体”类型的“temp"

然后根据判定条件通过对整个结构进行交换排序

C语言交换整个结构体相关推荐

  1. Go语言基础之结构体

    转载地址:https://www.liwenzhou.com/posts/Go/10_struct/ Go语言中没有"类"的概念,也不支持"类"的继承等面向对象 ...

  2. c语言 结构体ppt,C语言知识学习结构体.ppt

    C语言知识学习结构体.ppt Chap 9 结构,9.1 输出平均分最高的学生信息 9.2 学生成绩排序 9.3 修改学生成绩,本章要点,什么是结构结构与数组有什么差别 有几种结构的定义形式,它们之间 ...

  3. Go语言学习、结构体

    最近疫情比较严重,过年也不能出门,闲来无事,继续更新博客吧. 武汉加油! 我们来继续说下go语言中的结构体 比如我们现在想存储一个学生信息,如:学号.姓名.年龄.性别,等信息,按照我们以前的存储习惯, ...

  4. 10.Go语言基础之结构体

    Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 ...

  5. go语言学习:结构体

    结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 1.1. 类 ...

  6. C 语言实例 - 使用结构体(struct)

    C 语言实例 - 使用结构体(struct)C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...

  7. C语言小记:结构体及其在内存中的储存形式

    C语言小记:结构体及其在内存中的储存形式 1.结构体 结构体的作用:自定义一个包含多种不同数据类型的变量. 语法: struct 结构体名称 {结构体成员1:结构体成员2:结构体成员3:... } 定 ...

  8. C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...

  9. Linux结构体变量报错,C语言中的结构体

    用户自己建立自己的结构体类型 1.  定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...

最新文章

  1. java实现窗口透明_java实现窗口透明
  2. 学习旧岛小程序 (1) flex 布局
  3. 认识zookeeper
  4. 40种网站设计常用方法
  5. (十)nodejs循序渐进-高性能游戏服务器框架pomelo之介绍和安装篇
  6. 10 人,2 个月 | 虾米音乐的监控体系升级之路
  7. 基于QQ服务器JavaMail邮箱SSL密码第三方发送邮件
  8. 输变电设备物联网传感器数据通信规约_输变电设备“智慧物联”提升电网质效...
  9. 【kafka】Kafka ConsumerOffsetChecker 命令失效问题解决 卡死
  10. 自动为人脸上色,Adobe的涂鸦AI想让世界更多彩
  11. java se 试题_javaSE试题
  12. python下载大文件mp4_Python 实现视频爬取下载及断点续传优化、异步下载
  13. qlistview 自定义控件_python – QListView中的自定义项
  14. Android Studio 清理缓存clean project与invalidate caches
  15. MYSQL可重复读及原理、快照读和当前读
  16. 【mac 实现ai绘画自由安装指南】
  17. Overload和Override
  18. linux软件 mac地址,Linux MAC地址
  19. 全国省份地区相关常量备忘
  20. 【转载】生活常识,人人必备

热门文章

  1. win7 update
  2. 常见问题--如何管控项目进度和风险管理
  3. 线性代数学习笔记(八)——矩阵概念
  4. 计算机有趣的指令,好玩的CMD命令行~
  5. 《机器学习》慕课版课后习题-第13章
  6. iPhone内存的有效使用
  7. 软件工程知识点整理(复习用)
  8. C++:职工管理系统
  9. Eclipse 注释模板配置
  10. s20赛季服务器维护,王者荣耀s20赛季更新要多少内存?s20赛季更新内存空间要求一览_吉吉建站手游网...