博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言 · 学生信息(P1102)
阅读量:6548 次
发布时间:2019-06-24

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

算法训练 P1102  
时间限制:1.0s   内存限制:256.0MB
    
  定义一个学生结构体类型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
 
作者注释:自从学会了用结构体排序的方法,这种题目都蛮容易搞定的。
代码一:
1 #include
2 #include
3 #include
4 #include
5 #include
6 /*定义一个结构体*/ 7 typedef struct Stu{ 8 char name[30]; 9 char sex[20];10 int age;11 int score;12 }stu;13 /* 定义排序(回调)函数cmp: 14 返回类型必须是int;15 两个参数的类型必须都是const void *;16 如果是升序,那么就是如果a比b大返回一个正值,小则负值,相等返回0;17 */ 18 int cmp(const void *a,const void *b){19 /* *(stu*)a是因为:a是个void *类型,要先20 用(stu*)将它转成stu*类型,然后再用*取值,21 变成stu类型,才能比较大小。*/22 stu c=*(stu*)a;23 stu d=*(stu*)b;24 //按成绩升序排序 25 return c.score-d.score;26 }27 main(){28 int n;29 stu sz[100];30 scanf("%d",&n);31 for(int i=0;i

代码二:

1 #include
2 #include
3 //结构体 4 struct student 5 { 6 char name[20]; 7 char sex[10]; 8 int age; 9 int score;10 };11 int main()12 {13 int n;14 scanf("%d",&n);15 student stu[1000];16 for(int i=0;i
stu[j].score)24 {25 char str[20];26 strcpy(str,stu[i].name);27 strcpy(stu[i].name,stu[j].name);28 strcpy(stu[j].name,str);29 30 strcpy(str,stu[i].sex);31 strcpy(stu[i].sex,stu[j].sex);32 strcpy(stu[j].sex,str);33 34 int t;35 t=stu[i].score;36 stu[i].score=stu[j].score;37 stu[j].score=t;38 39 t=stu[i].age;40 stu[i].age=stu[j].age;41 stu[j].age=t;42 i=-1;//如果进行了排序那么前面的可能还需排序。 43 }44 }45 for(int i=0;i

 

 

 
 

转载地址:http://pfyco.baihongyu.com/

你可能感兴趣的文章
Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery
查看>>
TextMesh Pro
查看>>
关于A类,B类,C类IP地址的网段和主机数的计算方法
查看>>
android调试
查看>>
win10环境下配置django+Apache2.4.38+python3.6项目
查看>>
Url栏目导航判断
查看>>
南阳理工904
查看>>
如何通过当前地区经纬度,搜索数据库存储的地区(距离最近的地区)
查看>>
python-根据URL地址下载文件
查看>>
jshint在bat批处理中闪退,代码中无法调用的问题
查看>>
js 杂症,this with 变量提升
查看>>
easyui的 一些经验
查看>>
深度学习梯度消失或爆炸问题
查看>>
python loss layer: does not need backward computation?
查看>>
本地通知
查看>>
jQuery基础
查看>>
iOS实现提现类似的密码输入框
查看>>
GWT环境搭建--eclipse
查看>>
mybatis学习
查看>>
Mvcpager以下各节已定义,但尚未为布局页“~/Views/Shared/_Layout.cshtml”呈现:“Scripts”。...
查看>>