3
Joe M Math990112
Mike M CS991301 100
Mary F EE990830 95
Mary EE990830
Joe Math990112
6
1
Jean M AA980920 60
Absent
Jean AA980920
NA
思路1:
找Famle最大值,Male最小值,设置Fmax,Mmin存储当前最大、最小 ,不断遍历更新
code1:
#include <cstdio>
#include <iostream>
using namespace std;
int n, cntF = 0, cntM = 0;
struct Stu{
char gender, id[12], name[12];
int grade;
}Fmax, Fmin, Mmax, Mmin, tmp;
void init(){
Fmax.grade = -1;
Mmin.grade = 101;
}
int main(){
init();
scanf("%d", &n);
for(int i = 0; i < n; ++i){
scanf("%s %c %s %d", &tmp.name, &tmp.gender, &tmp.id, &tmp.grade);
if(tmp.gender == 'F'){
if(tmp.grade > Fmax.grade){
Fmax = tmp;
cntF++;
}
}
else{
if(tmp.grade < Mmin.grade){
Mmin = tmp;
cntM++;
}
}
}
if(cntF != 0){
printf("%s %s\n", Fmax.name, Fmax.id);
}else printf("Absent\n");
if(cntM != 0){
printf("%s %s\n", Mmin.name, Mmin.id);
}else printf("Absent\n");
if(cntF == 0 || cntM == 0) printf("NA\n");
else printf("%d", Fmax.grade - Mmin.grade);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
struct Stu{
string name, id;
}male_lowest, female_highest;
int main(){
int n, f_max = -1, m_min = 101;
scanf("%d", &n);
for(int i = 0; i < n; ++i){
string _name, _id;
char _gender;
int _score;
cin >> _name >> _gender >> _id >> _score;
if(_gender == 'M' && _score < m_min){
m_min = _score;
male_lowest.name = _name;
male_lowest.id = _id;
}
if(_gender == 'F' && _score > f_max){
f_max = _score;
female_highest.name = _name;
female_highest.id = _id;
}
}
if(f_max == -1) printf("Absent\n");
else printf("%s %s\n", female_highest.name.c_str(), female_highest.id.c_str());
if(m_min == 101) printf("Absent\n");
else printf("%s %s\n", male_lowest.name.c_str(), male_lowest.id.c_str());
if(f_max == -1 || m_min == 101) printf("NA");
else printf("%d", f_max-m_min);
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- azee.cn 版权所有 赣ICP备2024042794号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务