华为OJ——成绩排序
来源:互联网 发布:淘宝日本代购店推荐 编辑:程序博客网 时间:2024/06/06 00:20
成绩排序
题目描述
查找和排序
题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示:
jack 70
peter 96
Tom 70
smith 67
从高到低 成绩
peter 96
jack 70
Tom 70
smith 67
从低到高
smith 67
Tom 70
jack 70
peter 96
输入描述:
输入多行,先输入要排序的人的个数,然后分别输入他们的名字和成绩,以一个空格隔开
输出描述:
按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开
输入例子:
3
0
fang 90
yang 50
ning 70
输出例子:
fang 90
ning 70
yang 50
解答代码:
#include<iostream>#include<string>#include<cstring>#include<cstdio>#include<algorithm>#include<fstream>#define N 1024using namespace std;typedef struct node{ string name; float score;} STU;void IncByScore(STU student[],int len){ int i,j; for(i=0; i<len-1; i++) { for(j=0; j<len-1-i; j++) { if(student[j+1].score < student[j].score) { STU temp=student[j+1]; student[j+1]=student[j]; student[j]=temp; } } }}void DecByScore(STU student[],int len){ int i,j; for(i=0; i<len-1; i++) { for(j=0; j<len-1-i; j++) { if(student[j+1].score > student[j].score) { STU temp=student[j+1]; student[j+1]=student[j]; student[j]=temp; } } }}int main(){ int len=0,order=0; STU student[N]; //freopen("1.txt","r",stdin); while(cin >> len >>order) { for(int i=0; i<len; i++) { cin>>student[i].name>>student[i].score; } int j=0; if(order==0) DecByScore(student,len); if(order==1) IncByScore(student,len); //输出 for(j=0; j<len; j++) cout<<student[j].name<<" "<<student[j].score<<endl; }}
0 0
- 华为OJ——成绩排序
- 华为OJ——成绩排序
- 【华为oj】成绩排序
- 【华为 OJ 】成绩排序
- [华为OJ]成绩排序
- 华为OJ(成绩排序)
- 华为oj之成绩排序
- 华为OJ测试--成绩排序
- 华为OJ(成绩排序)
- 【华为OJ】【046-成绩排序】
- 华为OJ中级题-成绩排序
- [华为OJ--C++]046-成绩排序
- 华为oj 成绩排序java编码
- 华为OJ—字符串排序
- 华为OJ训练之0029-170109-成绩排序
- 华为OJ——字符串排序
- 华为OJ——字符串排序
- OJ题:成绩排序
- 微软开源Malmo AI项目平台 利用Minecraft构建复杂机器人任务
- mySQL的 插入 查询 更新
- [最大流]增广路算法Edmonds-Karp
- 【Android】另一种Tab的实现--TabLayout
- bzoj 4602 DFS
- 华为OJ——成绩排序
- POJ 2407 Relatives
- 选择语句结构if
- Apache修改默认站点目录和虚拟主机配置
- data 目录没有 解决办法
- ios - 调整button内部控件位置
- 华为OJ——矩阵乘法
- scanf,gets,getchar,fgets中的一些细节
- Codeforces 580A Kefa and First Steps