zoukankan      html  css  js  c++  java
  • 1083 List Grades

    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.

    Input Specification:

    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.

    Output Specification:

    For each test case you should output the student records of which the grades are in the given interval [grade1grade2] 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.

    Sample Input 1:

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

    Sample Output 1:

    Mike CS991301
    Mary EE990830
    Joe Math990112
    
     

    Sample Input 2:

    2
    Jean AA980920 60
    Ann CS01 80
    90 95
    
     

    Sample Output 2:

    NONE

    题意:

      给出一个成绩单,按照成绩从大到小输出成绩在[grade1, grade2]之间的学生的信息。

    思路:

      构造结构体,排序,输出。

    Code:

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 struct Student {
     6     string name;
     7     string id;
     8     int grade;
     9 };
    10 
    11 bool cmp(Student a, Student b) { return a.grade > b.grade; }
    12 
    13 int main() {
    14     int n;
    15     cin >> n;
    16     vector<Student> v;
    17     for (int i = 0; i < n; ++i) {
    18         string name, id;
    19         int grade;
    20         cin >> name >> id >> grade;
    21         v.push_back({name, id, grade});
    22     }
    23     int grade1, grade2;
    24     cin >> grade1 >> grade2;
    25     bool found = false;
    26     sort(v.begin(), v.end(), cmp);
    27     for (int i = 0; i < n; ++i)
    28         if (v[i].grade >= grade1 && v[i].grade <= grade2) {
    29             found = true;
    30             cout << v[i].name << " " << v[i].id << endl;
    31         }
    32     if (!found) cout << "NONE" << endl;
    33 
    34     return 0;
    35 }
    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    (转)TweenMax动画库学习(三)
    (转)TweenMax动画库学习(二)
    (转)TweenMax动画库学习(一)
    深入剖析Java中的装箱与拆箱(转)
    Spring MVC 和 Spring 总结(转)
    react native for android(ajax)
    React Native HelloWorld
    C# JMAIL发送邮件
    C# 接收邮件
    Spring Mvc Mybatis(初次学习)
  • 原文地址:https://www.cnblogs.com/h-hkai/p/12797613.html
Copyright © 2011-2022 走看看