| 有一串打乱的成绩,现要求你把他们从低到高排列。 |
| 输入 |
| 每一行为姓名和成绩 |
| 以#作为输入结束标志 |
| 输出 |
| 输出排序后的结果 |
| |
| 样例输入 |
| LI 95 |
| ZHAO 80 |
| SUN 85 |
| JIN 60 |
| QIAN 70 |
| WANG 90 |
| ZHAN 85 |
| # |
| |
| 样例输出 |
| JIN 60 |
| QIAN 70 |
| ZHAO 80 |
| SUN 85 |
| ZHAN 85 |
| WANG 90 |
| LI 95 |
| */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| typedef struct Student{ |
| |
| char name[20]; |
| float score; |
| } Student; |
| |
| int input(Student *st); |
| void print(Student *st, int n); |
| void sort(Student *st, int n); |
| |
| int main() |
| { |
| |
| Student * stu; |
| int n; |
| |
| |
| stu = (Student *)malloc(1000 * sizeof(Student)); |
| |
| while ((n = input(stu)) != -1) |
| { |
| sort(stu, n); |
| print(stu, n); |
| |
| } |
| } |
| |
| int input(Student *st) |
| { |
| int i; |
| for (i = 0;; i++) |
| { |
| |
| if(scanf("%s", st[i].name) == EOF) |
| { |
| return -1; |
| } |
| |
| |
| |
| else if (st[i].name[0] != '#') |
| { |
| scanf("%f", &st[i].score); |
| } |
| else |
| { |
| break; |
| } |
| } |
| return i; |
| } |
| |
| void print(Student *st, int n) |
| { |
| Student *p; |
| for (p=st; p<st+n; printf("%s %.0f\n",p->name, p->score), p++); |
| } |
| |
| void sort(Student *st, int n) |
| { |
| int i, j; |
| Student temp; |
| |
| for(i = 0;i < n - 1;i++) |
| { |
| for(j = 0;j<=n-2-i;j++) |
| { |
| if(st[j].score > st[j+1].score) |
| { |
| temp = st[j]; |
| st[j] = st[j+1]; |
| st[j+1] = temp; |
| } |
| } |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了