博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ALGO-141_蓝桥杯_算法训练_P1102
阅读量:4630 次
发布时间:2019-06-09

本文共 1375 字,大约阅读时间需要 4 分钟。

 定义一个学生结构体类型student,包括4个字段,姓名、性别、年龄和成绩。然后在主函数中定义一个结构体数组(长度不超过1000),并输入每个元素的值,   程序使用冒泡排序法将学生按照成绩从小到大的顺序排序,然后输出排序的结果。  输入格式:第一行是一个整数N(N<1000),表示元素个数;接下来N行每行描述一个元素,姓名、性别都是长度不超过20的字符串,年龄和成绩都是整型。  输出格式:按成绩从小到大输出所有元素,若多个学生成绩相同则成绩相同的同学之间保留原来的输入顺序。输入:  3  Alice female 18 98  Bob male 19 90  Miller male 17 92输出:  Bob male 19 90  Miller male 17 92  Alice female 18 98

 

记:

题目给出了用冒泡排序实现,但是冒泡排序会破坏当成绩相同时学生的排序

故使用插入排序

 

AC代码:

1 #include 
2 #define MAX 1000 3 4 typedef struct student 5 { 6 char name[20+1]; 7 char gender[20+1]; 8 int age; 9 int score;10 }student;11 12 int main(void)13 {14 int i,j;15 int n;16 student stu[MAX+1];17 student tmp;18 19 /*初始化*/20 scanf("%d",&n);21 for (i = 1 ; i <= n ; i ++)22 {23 scanf("%s %s %d %d",&stu[i].name,&stu[i].gender,&stu[i].age,&stu[i].score); 24 }25 26 /*插入排序*/ 27 for (i = 2 ; i <= n ; i ++)28 {29 tmp = stu[i];30 for (j = i ; j>1 && tmp.score < stu[j-1].score ; j --)31 {32 stu[j] = stu[j-1];33 } 34 stu[j] = tmp; 35 }36 37 /*结果输出*/38 for (i = 1 ; i <= n ; i ++)39 {40 printf("%s %s %d %d\n",stu[i].name,stu[i].gender,stu[i].age,stu[i].score);41 }42 43 return 0;44 }

 

转载于:https://www.cnblogs.com/mind000761/p/8876971.html

你可能感兴趣的文章
Asp.Net 构架(HttpModule 介绍)
查看>>
PHP-错误处理
查看>>
[C#][EF] 添加表添加不进来
查看>>
jquery radio 取值
查看>>
WebFrom模拟MVC
查看>>
人机猜拳(这是最近的一个总结)
查看>>
python函数
查看>>
模板引擎:Velocity&FreeMarker(转)
查看>>
Anaconda安装,jupyter notebook 使用说明
查看>>
sql server 2014预览版发布
查看>>
正则表达式string对象方法
查看>>
解析json实例
查看>>
spring中实现自己的初始化逻辑
查看>>
Accommodation development for Kaikoura
查看>>
Oracle11.2新特性之listagg函数 (行列转换)
查看>>
Flutter学习之动态ListView
查看>>
myeclipse中安装svn插件
查看>>
微信小程序----调用用户信息
查看>>
Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装
查看>>
Spring Boot配置全局异常捕获
查看>>