PTA学年1083のリスト・グレード(25point(S))

まず第一に、神は、最初の劉さんのブログを掲載しました

https://www.liuchuo.net/これはアドレスです

良いブラシPTA、強く推奨柳神、およびアルゴリズムのメモをブログしたいです

オリジナルタイトル

リストを考えるとNの名前、ID及びグレードで生徒のレコードを。あなたが成績が一定の間隔であるそのうち、それらの生徒のレコードを非増加のために、グレードに関してレコードをソートすることになって、出力されています。

入力仕様:

各入力ファイルには、1つのテストケースが含まれています。各ケースは、以下の形式で与えられます。

N
name[1] ID[1] grade[1]
name[2] ID[2] grade[2]
... ...
name[N] ID[N] grade[N]
grade1 grade2

どこname[i]ID[i]なしスペースを超えない10文字の文字列で、grade[i][0、100]の整数であり、grade1かつgrade2グレードの区間の境界です。すべてのグレードであることが保証されている明確な

出力仕様:

各テストケースのためには、グレードの出力生徒のレコードは、[指定した間隔である必要がありgrade1grade2]と非増加順になっています。各生徒のレコードは1スペースで区切られた学生の名前やID、行を占めています。その間隔、出力の無い学生のグレードがある場合はNONE代わりに。

サンプル入力1:

4
Tom CS000001 59
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
60 100    

サンプル出力1:

Mike CS991301
Mary EE990830
Joe Math990112   

サンプル入力2:

2
Jean AA980920 60
Ann CS01 80
90 95  

出力例2:

NONE

効果の対象に

Nは、学生の成績を与えることで、一定の間隔での生徒の成績

情報がない出力NONEに、学生のセクションの内部で出力を必要と

コードは以下の通りです

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct student {
    char name[11], id[11];
    int grade;
};
bool cmp(student a, student b) {
    return a.grade > b.grade;
}
int main(void) {
    int N;
    int flag = false;
    scanf("%d", &N);
    vector<student> data(N);
    for (int i = 0; i < N; i++) {
        scanf("%s%s%d", data[i].name, data[i].id, &data[i].grade);
    }
    int grade1, grade2;
    scanf("%d%d", &grade1, &grade2);
    if (grade1 > grade2) {
        int t = grade1;
        grade1 = grade2;
        grade2 = grade1;
    }
    sort(data.begin(), data.end(), cmp);
    for (int i = 0; i < N; i++) {
        if (data[i].grade >= grade1 && data[i].grade <= grade2) {
            printf("%s %s\n", data[i].name, data[i].id);
            flag = true;
        }
    }
    if (!flag) printf("NONE");
    return 0;
}

おすすめ

転載: www.cnblogs.com/a-small-Trainee/p/12455797.html
おすすめ