PAT (Basic Level) 1004 成绩排名 (20 分)
发布日期:2021-05-04 01:05:21 浏览次数:25 分类:技术文章

本文共 2095 字,大约阅读时间需要 6 分钟。

1.题目描述

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式: 每个测试输入包含 1 个测试用例,格式为

第 1 行:正整数 n 第 2 行:第 1 个学生的姓名 学号 成绩 第 3 行:第 2 个学生的姓名 学号 成绩
第 n+1 行:第 n 个学生的姓名 学号 成绩 其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

输出格式: 对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。

2.思路解析

就是对字符串的操作,用Split函数分割输入的字符串,然后遍历比较即可。

3.代码

static void Main(string[] args)        {
int max = -1; int min = 101; string s = Console.ReadLine(); int n = int.Parse(s); // str1用来当前最大最小成绩的对应信息 string[] str1 = new string[2]; for (int i = 0; i < n; i++) {
s = Console.ReadLine(); // 用Split函数将获取的学生信息切割 string[] str = Split(s, ' '); str1[0] = max < int.Parse(str[2]) ? (str[0] + " " + str[1]) : str1[0]; max = max < int.Parse(str[2]) ? int.Parse(str[2]) : max; str1[1] = min > int.Parse(str[2]) ? (str[0] + " " + str[1]) : str1[1]; min = min > int.Parse(str[2]) ? int.Parse(str[2]) : min; } foreach (var item in str1) {
Console.WriteLine(item); } Console.ReadKey(); }

其中最关键的是Split函数,所以重写了Split函数:

public static string[] Split(string s,char c)        {
// 因为不知道string[]数组的长度是多少,所以先将数据存入list集合中 List
list = new List
(); // flag用来记录本段字符起始位置 int flag = 0; for (int i = 0; i < s.Length; i++) {
if (s[i] == c ) {
if(s[i - 1] != c) list.Add(s.Substring(flag, i - flag)); flag = i + 1; }else if(i == s.Length - 1) {
list.Add(s.Substring(flag, i - flag + 1)); } } string[] str = new string[list.Count]; for (int i = 0; i < list.Count; i++) {
str[i] = list[i]; } return str; }

转载地址:https://blog.csdn.net/weixin_45027619/article/details/116166924 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Basic Level)1005 继续(3n+1)猜想 (25 分)
下一篇:算法题收获汇总

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月22日 02时25分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

spring boot 与 Ant Design of Vue 实现删除用户(三十) 2019-04-27
spring boot 与 Ant Design of Vue 鉴权体系登录的实现(三十一) 2019-04-27
spring boot 与 Ant Design of Vue 鉴权体系获取用户信息的实现(三十二) 2019-04-27
Druid连接池实现自定义场景的多数据库的连接 2019-04-27
CentOs7命令行(静默)的方式安装oracle数据库 2019-04-27
基于VMware安装CentOs7的镜像 2019-04-27
PL/SQL数据库管理工具的使用 2019-04-27
史上最简单的spring-boot集成websocket的实现方式 2019-04-27
带你玩转属于自己的spring-boot-starter系列(一) 2019-04-27
带你玩转属于自己自己的spring-boot-starter系列(二) 2019-04-27
带你玩转属于自己的spring-boot-starter系列(三) 2019-04-27
基于SnowFlake算法如何让分库分表中不同的ID落在同一个库的算法的实现 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之分库解决方案(二) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之分表解决方案(一) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之关联查询解决方案(三) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之基于seata的分布式事务的解决方案(十五) 2019-04-27
Linux文件管理参考 2019-04-27
FTP文件管理项目(本地云)项目日报(一) 2019-04-27
FTP文件管理项目(本地云)项目日报(二) 2019-04-27
FTP文件管理项目(本地云)项目日报(三) 2019-04-27