Links zum Thema : https://pintia.cn/problem-sets/994805342720868352/problems/994805383929905152
题目描述
eine Liste von N Schüler Datensätze mit Namen, ID und Klasse gegeben. Sie sollen die Datensätze in Bezug auf die Klasse in nicht aufsteigender Reihenfolge sortieren, und Ausgang jene Schüler Aufzeichnungen , von denen die Noten in einem bestimmten Intervall sind.
输入
Jede Eingabedatei enthält einen Testfall. Jeder Fall wird im folgenden Format angegeben:
N
name[1] ID[1] grade[1]
name[2] ID[2] grade[2]
... ...
name[N] ID[N] grade[N]
grade1 grade2
wobei name [i] und ID [i] Strings von nicht mehr als 10 Zeichen ohne Zwischenraum sind, grade [i] eine ganze Zahl im Intervall [0, 100], und grade1 grade2 sind die Grenzen des Intervalls der Klasse. Es wird garantiert, dass alle Qualitäten unterscheiden.
输出
Für jeden Testfall sollten Sie geben die Schülerdaten , von denen die Noten in dem gegebenen Intervall [grade1, grade2] sind und in nicht- aufsteigender Reihenfolge. Jeder Schüler Rekord nimmt eine Zeile mit dem Namen des Schülers und ID, durch ein Leerzeichen getrennt. Wenn es keine Klasse Schüler in diesem Intervall, Ausgabe NONE statt.
Abtastwerteingang
4
Tom CS000001 59
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
60 100
Beispielausgabe
Mike CS991301
Mary EE990830
Joe Math990112
Code
#include <cstdio>
#include <algorithm>
using namespace std;
struct student {
char name[20];
char id[20];
int grade;
}stu[110];
bool cmp(student a, student b) {
return a.grade > b.grade;
}
int main(){
int n, flag = 1;
scanf("%d", &n);
for(int i = 0; i < n; i++)
scanf("%s %s %d", stu[i].name, stu[i].id, &stu[i].grade);
sort(stu, stu + n, cmp);
int min, max;
scanf("%d%d", &min, &max);
for(int i = 0; i < n; i++) {
if(stu[i].grade >= min && stu[i].grade <= max) {
printf("%s %s\n", stu[i].name, stu[i].id);
flag = 0;
}
}
if(flag)
printf("NONE\n");
return 0;
}