PAT A 1036
来源:互联网 发布:淘宝信誉评级极好优秀 编辑:程序博客网 时间:2024/06/09 15:04
题目
给出n行学生的数据,每行数据表示一个学生格式为 姓名 性别 ID 分数,输出女生最高分的学生的姓名、ID、男生最低分的姓名、ID,以及这两个分数的差。
I/O
Sample Input 1:
3
Joe M Math990112 89
Mike M CS991301 100
Mary F EE990830 95
Sample Output 1:
Mary EE990830
Joe Math990112
6
Sample Input 2:
1
Jean M AA980920 60
Sample Output 2:
Absent
Jean AA980920
NA
算法
发现这道输入输出睡题,不需要算法,练习struct。
每次读入直接处理,维护最高最低分和其所在的学生编号。
O(n).
代码
#include<cstdio>#include<iostream>using namespace std;struct stu_info{ char name[12]; char gender; char ID[12]; int grade;} stu[100];int main(){ int n; scanf("%d", &n); int M_lowGrade = 100, F_hiGrade = 0; int low_i, hi_i; bool isMale = 0, isFemale = 0; for(int i = 0; i<n; i++) { cin >> stu[i].name >> stu[i].gender >> stu[i].ID >> stu[i].grade; if(stu[i].gender == 'M') isMale = 1; if(stu[i].gender == 'F') isFemale = 1; if(stu[i].gender == 'M' && stu[i].grade<M_lowGrade) { M_lowGrade = stu[i].grade; low_i = i; } if(stu[i].gender == 'F' && stu[i].grade>F_hiGrade) { F_hiGrade = stu[i].grade; hi_i = i; } } int diff = F_hiGrade - M_lowGrade, flag = 1; if(isFemale) printf("%s %s\n", stu[hi_i].name, stu[hi_i].ID); else {flag = 0; printf("Absent\n");} if(isMale) printf("%s %s\n", stu[low_i].name, stu[low_i].ID); else {flag = 0; printf("Absent\n");} if(flag) printf("%d", diff); else printf("NA"); return 0;}
0 0
- PAT(A) 1036
- PAT A 1036
- PAT A A+B Format
- pat: 1016 A+B
- PAT [A] 1054
- Pat(A) 1002
- PAT(A) 1005
- PAT(A) 1006
- PAT(A) 1007
- PAT(A) 1008
- PAT(A) 1009
- PAT(A) 1011
- PAT(A) 1012
- PAT(A) 1015
- PAT(A) 1031
- PAT(A) 1035
- PAT(A) 1013
- PAT(A) 1019
- ant编译mysql驱动
- python-序列成员资格示例
- CEO们的书单
- marathon在资源调度方面的cggroup limit到底是啥意思
- ETL 测试/数据仓库测试-----技巧,技术,过程和挑战
- PAT A 1036
- sqlserver 2008R2 删除一个表中的重复数据
- Jenkins在Redhat上的搭建和数据迁移
- Java_java中的Random类的使用
- 设计模式学习12——享元模式
- Android自定义捕获Application全局异常优化版
- 《巨流河》书签
- 一农者(哲理散文)
- linux定时记录并发数