zoukankan      html  css  js  c++  java
  • A1083 List Grades (25)(25 分)

    A1083 List Grades (25)(25 分)

    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 [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.

    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
    

    AC代码

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <stdbool.h>
    #define  maxn  50
    struct Student {
        char name[11];
        char id[11];
        int grade;
    }stu[maxn];
    int cmp(const void*a, const void*b) {
    //	struct Student*aa=(Student*)a;
    //	struct Student*bb=(Student*)b;
    	struct Student*aa=a;
      	struct Student*bb=b;
        return aa->grade < bb->grade ? 1:-1;//为实现成绩降序,c++ 是>,c语言则是<,1<2返回正值,1==2返回0,1>2,返回负值 
    }
    int main() {
        int n, left, right;
        scanf("%d", &n);
        for(int i = 0; i < n; i++) {
            scanf("%s %s %d", stu[i].name, stu[i].id, &stu[i].grade);
        }
        scanf("%d%d", &left, &right);
        qsort(stu,n,sizeof(stu[0]), cmp);
        bool flag = false;
        for(int i = 0; i < n; i++) {
            if(stu[i].grade >= left && stu[i].grade <= right) {
                printf("%s %s
    ", stu[i].name, stu[i].id);
                flag = true;
            }
        }
        if(flag == false) {
            printf("NONE
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    mysql备份及恢复
    mysql备份及恢复
    mysql备份及恢复
  • 原文地址:https://www.cnblogs.com/lingr7/p/9492040.html
Copyright © 2011-2022 走看看