PAT.a1083. List Grades

针对PAT竞赛中的学生记录,此程序实现了一种排序算法,能够根据学生的成绩进行非递增排序,并筛选出指定成绩区间内的学生信息。输入包括学生姓名、ID及成绩,输出为成绩在指定范围内的学生姓名与ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

大水题,对PAT质量产生怀疑,大水题太多了点。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
struct Person {
	char name[11], id[11];
	int grade;
}stu[50];
bool cmp(Person a, Person b) {
	return a.grade > b.grade;
}

int main(){
	int n,f=0;
	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 l, r;
	scanf("%d%d", &l, &r);
	for (int i = 0; i < n; i++) {
		if (stu[i].grade >= l&&stu[i].grade <= r) {
			printf("%s %s\n", stu[i].name, stu[i].id);
			f = 1;
		}
	}
	if (!f) printf("NONE");
	return 0;
}

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
在C++程序中,`student_scores.txt`和`student_grades.txt`文件的创建位置应根据程序运行时的工作目录来确定。通常情况下,工作目录是执行程序所在的当前目录,即与可执行文件位于同一目录下。若用户希望将文件保存到特定路径,可以通过指定完整或相对路径的方式进行操作。 例如,在以下代码中,文件操作部分通过显式指定路径来确保文件生成在预期的位置: ```cpp #include <fstream> int main() { std::ifstream ifs("student_scores.txt"); // 从当前目录读取输入文件 std::ofstream ofs("student_grades.txt"); // 在当前目录创建输出文件 if (!ifs.is_open()) { std::cerr << "无法打开输入文件!" << std::endl; return 1; } if (!ofs.is_open()) { std::cerr << "无法创建输出文件!" << std::endl; return 1; } // 其他处理逻辑... return 0; } ``` 如果文件未放置在程序运行目录下,则需要提供完整的绝对路径或相对于程序运行目录的相对路径[^1]。例如,若希望将文件存储在`C:\data\students`目录下,则可以修改文件流的初始化语句为: ```cpp std::ifstream ifs("C:/data/students/student_scores.txt"); std::ofstream ofs("C:/data/students/student_grades.txt"); ``` 此外,程序运行目录可能因开发环境、操作系统以及用户的执行方式而异。因此,为了保证文件读写的一致性,建议开发者在编写程序时明确指定文件路径,以避免因路径错误导致文件操作失败。 ### 相关问题 1. 如何在C++中使用绝对路径和相对路径进行文件操作? 2. 程序运行时如何获取当前工作目录? 3. 如何处理跨平台文件路径差异(如Windows和Linux)? 4. 文件操作中如何防止路径不存在导致的错误?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值