PAT-1004

来源:互联网 发布:七天网络查分账号注册 编辑:程序博客网 时间:2024/06/15 15:30

1004. 成绩排名 (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

读入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
c++:
#include<iostream>#include<string>using namespace std;struct Student{string name;string num;int score;}student,temp1,temp2;int main(){int n;cin>>n;cin>>student.name;cin>>student.num;cin>>student.score;temp1.name=temp2.name=student.name;temp1.num=temp2.num=student.num;temp1.score=temp2.score=student.score;for(int i=0;i<n-1;i++){cin>>student.name;cin>>student.num;cin>>student.score;if(temp1.score<student.score){temp1.name=student.name;temp1.num=student.num;temp1.score=student.score;}if(temp2.score>student.score){temp2.name=student.name;temp2.num=student.num;temp2.score=student.score;}}if(temp1.score<student.score){temp1.name=student.name;temp1.num=student.num;temp1.score=student.score;}if(temp2.score>student.score){temp2.name=student.name;temp2.num=student.num;temp2.score=student.score;}cout<<temp1.name<<' '<<temp1.num<<endl;cout<<temp2.name<<' '<<temp2.num<<endl;}

第二种解法:
#include<iostream>#include<string.h>using namespace std;struct Student{char name[11];char score[11];int grade; };int main(){int n,i,j,max,min,num1,num2,n2;cin>>n;n2=n;struct Student student[n];while(n--){cin>>student[n].name;cin>>student[n].score;cin>>student[n].grade;}max=0;min=1000;num1=num2=0;for(i=0;i<n2;i++){if(student[i].grade>max){max=student[i].grade;num1=i;}if(student[i].grade<min){min=student[i].grade;num2=i;}}cout<<student[num1].name<<' '<<student[num1].score<<endl;cout<<student[num2].name<<' '<<student[num2].score<<endl;return 0;}


0 0
原创粉丝点击