标签:技术 syn col return style you with 分享图片 amp
Given a list of N student records with name, ID and grade.
You are supposed to sort the records with respect to the grade in non-increasing order,
and output those student records of which the grades are in a given interval.
Each input file contains one test case. Each case is given in the following format:
N
name[1] ID[1] grade[1]
name[2] ID[2] grade[2]
... ...
name[N] ID[N] grade[N]
grade1 grade2
where name[i] and ID[i] are strings of no more than 10 characters with no space, grade[i] is an integer in [0, 100],
grade1 and grade2 are the boundaries of the grade‘s interval. It is guaranteed that all the grades are distinct.
For each test case you should output the student records of which the grades are in the given interval [grade1, grade2]
and are in non-increasing order. Each student record occupies a line with the student‘s name and ID, separated by one space.
If there is no student‘s grade in that interval, output "NONE" instead.
4 Tom CS000001 59 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95 60 100
Mike CS991301 Mary EE990830 Joe Math990112
思路:简单模拟,n个学生信息包括学生姓名,科目代号,分数,给两个分数的左右区间,问分数在这两个区间的范围内的学生有哪些,有的话按照成绩的非递增顺序输出学生的姓名和科目。
没有输出“NONE”
#include<bits/stdc++.h> using namespace std; struct student { char name[11]; int grade; char subject[11]; }; student res[101]; student stu[101]; bool cmp(student a, student b) { return a.grade >= b.grade; } int main() { //freopen("in.txt", "r", stdin); ios::sync_with_stdio(false), cin.tie(0); int n; cin >> n; for (int i = 0; i < n; i++) cin >> stu[i].name >> stu[i].subject >> stu[i].grade; int left, right; cin >> left >> right; int cnt = 0; for (int i = 0; i < n; i++) if (stu[i].grade >= left && stu[i].grade <= right) res[cnt++] = stu[i]; if (cnt == 0) {cout << "NONE"; return 0;} sort(res, res + cnt, cmp); for (int i = 0; i < cnt; i++) cout << res[i].name << " " << res[i].subject << endl; return 0; }
标签:技术 syn col return style you with 分享图片 amp
原文地址:https://www.cnblogs.com/kuroko-ghh/p/10289921.html