PAT1004. 成绩排名 (20)
来源:互联网 发布:软件购买合同 编辑:程序博客网 时间:2024/06/05 07:25
读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式:每个测试输入包含1个测试用例,格式为
第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。
输入样例:3Joe Math990112 89Mike CS991301 100Mary EE990830 95输出样例:
Mike CS991301Joe Math990112一道简单的排序题,不过要多建一个结构存放数据,初次提交通不过的原因是我定义的char[10],题中不超过10个字符也有可能是10个啊!!!!!
下面是代码
#include "vector"#include "string.h"#include "iostream"using namespace std;typedef struct student{char name[11];char num[11];int score;}stu;void sort(vector<stu> &s){ int n=s.size(); int i; stu tmp; for(int gap=n/2;gap>0;gap/=2)//这里用的希尔排序 { for(i=gap;i<n;i++) { tmp=s[i]; int j=0; for(j=i;j>=gap&&tmp.score<s[j-gap].score;j-=gap) {s[j].score=s[j-gap].score; strcpy(s[j].num,s[j-gap].num); strcpy(s[j].name,s[j-gap].name); } s[j].score=tmp.score; strcpy(s[j].num,tmp.num); strcpy(s[j].name,tmp.name); } }}int main(){ int n=0; cin>>n; stu stud; vector<stu>a; for(int i=0;i<n;i++) { cin>>stud.name; cin>>stud.num; cin>>stud.score; a.push_back(stud); } sort(a); int i=a.size(); cout<<a[i-1].name<<" "<<a[i-1].num<<endl; cout<<a[0].name<<" "<<a[0].num<<endl; system("pause");}
阅读全文
0 0
- PAT1004.BASIC 成绩排名 (20)
- PAT1004成绩排名 (20)
- PAT1004. 成绩排名 (20)
- PAT1004. 成绩排名 (20)
- PAT1004. 成绩排名 (20)
- PAT1004. 成绩排名 (20)
- pat1004:成绩排名 (20)
- PAT1004. 成绩排名 (20)
- PAT1004 成绩排名
- PAT1004. 成绩排名
- pat1004:成绩排名
- PAT1004. 成绩排名
- 从零单排PAT1004. 成绩排名
- PAT1004
- pat1004
- PAT1004
- pat1004
- pat1004
- HDU 3667
- Cookie和Session的作用和工作原理
- CDH错误排查
- c_day05_io
- PAT 甲级 1007. Maximum Subsequence Sum
- PAT1004. 成绩排名 (20)
- 关于easyUI登入界面不跳出当前tab
- Jenkins构建Python项目失败
- maven打包时跳过测试
- spoj2666 Qtree4(类似于bzoj1095: [ZJOI2007]Hide 捉迷藏)详解
- MOOC清华《面向对象程序设计》第4章:自动类型转换实验
- PAT 甲级 1008. Elevator
- 单例设计模式
- elasticsearch-php工具类的编写