C语言交换整个结构体
今天学习当中,在编写结构体程序时发生了一件很搞笑的事。
输入五个同学的姓名、三科成绩、与平均分。按照平均分进行大小排序输出
第一次使用这样的代码
#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语言交换整个结构体相关推荐
- Go语言基础之结构体
转载地址:https://www.liwenzhou.com/posts/Go/10_struct/ Go语言中没有"类"的概念,也不支持"类"的继承等面向对象 ...
- c语言 结构体ppt,C语言知识学习结构体.ppt
C语言知识学习结构体.ppt Chap 9 结构,9.1 输出平均分最高的学生信息 9.2 学生成绩排序 9.3 修改学生成绩,本章要点,什么是结构结构与数组有什么差别 有几种结构的定义形式,它们之间 ...
- Go语言学习、结构体
最近疫情比较严重,过年也不能出门,闲来无事,继续更新博客吧. 武汉加油! 我们来继续说下go语言中的结构体 比如我们现在想存储一个学生信息,如:学号.姓名.年龄.性别,等信息,按照我们以前的存储习惯, ...
- 10.Go语言基础之结构体
Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 ...
- go语言学习:结构体
结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 1.1. 类 ...
- C 语言实例 - 使用结构体(struct)
C 语言实例 - 使用结构体(struct)C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...
- C语言小记:结构体及其在内存中的储存形式
C语言小记:结构体及其在内存中的储存形式 1.结构体 结构体的作用:自定义一个包含多种不同数据类型的变量. 语法: struct 结构体名称 {结构体成员1:结构体成员2:结构体成员3:... } 定 ...
- C语言中的结构体,结构体中数组初始化与赋值
最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...
- Linux结构体变量报错,C语言中的结构体
用户自己建立自己的结构体类型 1. 定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...
最新文章
- java实现窗口透明_java实现窗口透明
- 学习旧岛小程序 (1) flex 布局
- 认识zookeeper
- 40种网站设计常用方法
- (十)nodejs循序渐进-高性能游戏服务器框架pomelo之介绍和安装篇
- 10 人,2 个月 | 虾米音乐的监控体系升级之路
- 基于QQ服务器JavaMail邮箱SSL密码第三方发送邮件
- 输变电设备物联网传感器数据通信规约_输变电设备“智慧物联”提升电网质效...
- 【kafka】Kafka ConsumerOffsetChecker 命令失效问题解决 卡死
- 自动为人脸上色,Adobe的涂鸦AI想让世界更多彩
- java se 试题_javaSE试题
- python下载大文件mp4_Python 实现视频爬取下载及断点续传优化、异步下载
- qlistview 自定义控件_python – QListView中的自定义项
- Android Studio 清理缓存clean project与invalidate caches
- MYSQL可重复读及原理、快照读和当前读
- 【mac 实现ai绘画自由安装指南】
- Overload和Override
- linux软件 mac地址,Linux MAC地址
- 全国省份地区相关常量备忘
- 【转载】生活常识,人人必备