加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

A1083 List Grades (25 分)

发布时间:2020-12-14 00:24:53 所属栏目:Linux 来源:网络整理
导读: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 Specificat

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

开始技术总结:

  • 第一点就是初始化数组或是结构体的时候,大小要用常量,不能够使用输入量初始化
  • 还有就是中文的括号注意一点

  • 参考代码:
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 50;
struct Student {
    char ID[11];
    char name[11];
    int grade;
}student[MAXN];

bool cmp(Student a,Student b) {
    if (a.grade != b.grade) return a.grade > b.grade;
}

int main(){

    int grade1,grade2;
    int N;
    scanf("%d",&N);
    for (int i = 0; i < N; i++) {
        scanf("%s%s%d",student[i].name,student[i].ID,&student[i].grade);
    }
    scanf("%d%d",&grade1,&grade2);
    sort(student,student + N,cmp);
    int flag = 0;//用来标记是否又符合条件的同学,0表示没有
    for (int j = 0; j < N; j++) {
        if (student[j].grade <= grade2 && student[j].grade >= grade1) {
            printf("%s %sn",student[j].name,student[j].ID);
            flag = 1;
        }
    }
    if (flag == 0) {
        printf("NONE");
    }
    system("pause");
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读