题目
输入:
行数 | 数字 | 含义 | ||
---|---|---|---|---|
第一行 | N 输入的行数 | |||
第二行 | name (string) | gender | ID (string) | grade (int ∈ [0,100]) |
第...行 | name (string) | gender | ID (string) | grade (int ∈ [0,100]) |
第N行 | name (string) | gender | ID (string) | grade (int ∈ [0,100]) |
输出:
行数 | 输出内容 |
---|---|
第一行 | 成绩最高的女生 |
第二行 | 成绩最低的男生 |
第三行 | 两人的分数差 |
如果有一个人没有,那么就输出Absent,并且第三行输出为NA。
Sample Input1
3
Joe M Math990112 89
Mike M CS991301 100
Mary F EE990830 95
Sample Output1
Mary EE990830
Joe Math990112
6
Sample Input2
1
Jean M AA980920 60
Sample Output2
Absent
Jean AA980920
NA
解法
法一:C++
思路:
简单的循环就能搞定
源代码:
#include <iostream>
#include <cstdio>
#include <math.h>
#include<vector>
#include <string.h>
#include <sstream>
using namespace std;
char gender;
string name,id;
int grade;
int main() {
int n;
scanf("%d",&n);
int fmax,mmin;
fmax=0;
mmin=9999;
string female,male;
int grades[2];
for(int i=0;i<n;i++){
cin>>name>>gender>>id>>grade;
if(gender == 'F'){
if(grade > fmax){
fmax = grade;
female = name+" "+id;
}
}
else{
if(grade < mmin){
mmin = grade;
male = name+" "+id;
}
}
}
if(fmax == 0){
cout<<"Absent"<<endl;
cout<<male<<endl;
cout<<"NA"<<endl;
}
else if(mmin == 9999){
cout<<female<<endl;
cout<<"Absent"<<endl;
cout<<"NA"<<endl;
}
else{
cout<<female<<endl;
cout<<male<<endl;
cout<<fmax-mmin<<endl;
}
return 0;
}
网友评论