排序后的学生成绩单

简介: 排序后的学生成绩单。

一、问题情景
从键盘中输入一个班40个学生的学号、姓名及数学、英语、语文三门课的成绩,按三门课总分的高低进行排序,输出排序后的成绩单(每条记录包含姓名、数学、英语、语文、总分、平均分的信息)。
分析:
(1)首先要定义一个能存放40个学生学号、姓名、数学、英语、语文、总分、平均分的结构体数组;
(2)然后从键盘上输入40个同学的学号、姓名、数学、英语、语文信息;
(3)第三求每个同学的总分、平均分;
(4)接下来就是求对总分进行排序;
(5)最后输出排序后的成绩单。
其中(1)、(2)、(5)在任务1中已学过,现在本题主要是想解决如何在结构体数组中进行(3)、(4),即对每个同学求总分、平均分,然后进行排序。

include "stdio.h"

define N 5/ 假设只有5个同学/

main()
{struct
{char id[6],name[10];
int m1,m2,m3;
float sum,avg;}stu1[N],t;
int i,j;
printf("请输入学生的信息\n");
for(i=0;i<N;i++)
scanf("%s%s%d%d%d",stu1[i].id,stu1[i].name,&stu1[i].m1,&stu1[i].m2,&stu1[i].m3);
for(i=0;i<N;i++)
{stu1[i].sum=stu1[i].m1+stu1[i].m2+stu1[i].m3;
stu1[i].avg=stu1[i].sum/3.0;}
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(stu1[j].sum<stu1[j+1].sum)
{t=stu1[j];stu1[j]=stu1[j+1];stu1[j+1]=t;}
printf("排序后的成绩单为:\n");
printf("学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
for(i=0;i<N;i++)
printf("%s\t%s\t%d\t%d\t%d\t%.1f\t%.1f\n",stu1[i].id,stu1[i].name,stu1[i].m1,
stu1[i].m2,stu1[i].m3,stu1[i].sum,stu1[i].avg);
}

相关文章
uniapp点击图片预览功能?
uniapp点击图片预览功能?
1282 0
|
10月前
|
运维 NoSQL Cloud Native
国内独家|阿里云首发MongoDB 8.0,性能提升“快”人一步
阿里云作为MongoDB的最佳战略合作伙伴,在国内独家发布了8.0版本,支撑广大用户进一步提升业务效率。
|
11月前
|
机器学习/深度学习 算法 物联网
DeepSeek V3+R1满血微调工具上线!一键启动,硬件要求降10倍
DeepSeek V3+R1满血微调工具上线!一键启动,硬件要求降10倍
438 1
|
存储 缓存 UED
Guava Cache 在第三方接口异常时的优雅降级处理
Guava Cache 在第三方接口异常时的问题处理
196 0
|
PyTorch 算法框架/工具
时间序列预测:CNN+LSTM+Attention模型实战
时间序列预测:CNN+LSTM+Attention模型实战
2106 0
|
存储 运维 监控
构建端到端可观测全景丨云栖大会可观测分享实录
构建端到端可观测全景丨云栖大会可观测分享实录
835 98
|
存储 数据管理 数据库
理解数据库中的参照完整性
【6月更文挑战第13天】数据库设计旨在创建和维护企业的数据管理系统,确保数据完整性和消除冲突。好的数据库设计应减少冗余,保证信息准确完整,并满足处理和报告需求。设计工具包括E-R图和UML等。
1290 2
理解数据库中的参照完整性
|
网络协议
|
Java 数据安全/隐私保护
SpringBoot 自定义初始化任务 Runner
SpringBoot 自定义初始化任务 Runner
244 0
|
IDE Java Maven
性能工具之Jmeter扩展配置元件插件
【5月更文挑战第20天】性能工具之Jmeter扩展配置元件插件
709 1