当前位置: 首页 > news >正文

题记(42)--EXCEL排序

目录

一、题目内容

二、输入描述

三、输出描述

四、输入输出示例

五、完整C语言代码


一、题目内容

 Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。     对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。

二、输入描述

测试输入包含若干测试用例。每个测试用例的第1行包含两个整数 N (N<=100000) 和 C,其中 N 是纪录的条数,C 是指定排序的列号。以下有N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,同组测试中没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩(闭区间[0, 100]内的整数)组成,每个项目间用1个空格隔开。当读到 N=0 时,全部输入结束,相应的结果不要输出。

三、输出描述

对每个测试用例,首先输出1行“Case:”。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。

四、输入输出示例

输入:

3 1
000007 James 85
000010 Amy 90
000001 Zoe 60

输出:

Case:
000001 Zoe 60
000007 James 85
000010 Amy 90

简单冒泡即可

五、完整C语言代码

AC代码~#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct student {char id[7];char name[9];int grade;
} stu;void sortOne(stu a[], int n) {for (int i = n - 1; i > 0; i--) {for (int j = 0; j < i; j++) {if (strcmp(a[j].id, a[j + 1].id) > 0) {stu tmp;tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}}}
}int cmp(stu s1, stu s2) {int i = 0;while (s1.name[i] != '\0' && s2.name[i] != '\0') {if (s1.name[i] > s2.name[i])return 1;else if (s1.name[i] < s2.name[i])return 0;elsei++;}if (s1.name[i] == '\0' && s2.name[i] == '\0') {if (strcmp(s1.id, s2.id) > 0)return 1;elsereturn 0;} else if (s1.name[i] == '\0')return 0;elsereturn 1;
}void sortTwo(stu a[], int n) {for (int i = n - 1; i > 0; i--) {for (int j = 0; j < i; j++) {if (cmp(a[j], a[j + 1]) > 0) {stu tmp;tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}}}
}int cmp_2(stu s1, stu s2) {if (s1.grade > s2.grade)return 1;else if (s1.grade < s2.grade)return 0;else {if (strcmp(s1.id, s2.id) > 0)return 1;elsereturn 0;}
}void sortThree(stu a[], int n) {for (int i = n - 1; i > 0; i--) {for (int j = 0; j < i; j++) {if (cmp_2(a[j], a[j + 1]) > 0) {stu tmp;tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}}}
}
int main() {int n, c;while (scanf("%d%d", &n, &c) != EOF) {char tmpc = getchar();stu* ans = (stu*)malloc(n * sizeof(stu));for (int i = 0; i < n; i++)scanf("%s%s%d", ans[i].id, ans[i].name, &ans[i].grade);if (c == 1)sortOne(ans, n);else if (c == 2)sortTwo(ans, n);elsesortThree(ans, n);printf("Case:\n");for (int i = 0; i < n; i++)printf("%s %s %d\n", ans[i].id, ans[i].name, ans[i].grade);}return 0;
}

相关文章:

题记(42)--EXCEL排序

目录 一、题目内容 二、输入描述 三、输出描述 四、输入输出示例 五、完整C语言代码 一、题目内容 Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。 对每个测试用例&#xff0c;首先输出1行“Case i:”&#xff0c;其中 i 是测试用例的编号&#…...

【学网攻】 第(28)节 -- OSPF虚链路

系列文章目录 目录 系列文章目录 文章目录 前言 一、什么是OSPF虚链路&#xff1f; 二、实验 1.引入 实验目标 实验背景 技术原理 实验步骤 实验设备 实验拓扑图 实验配置 扩展 实验拓扑图 实验配置 实验验证 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻…...

百面嵌入式专栏(面试题)驱动开发面试题汇总1.0

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍驱动开发面试题 。 1、Linux驱动程序的功能是什么? 对设备初始化和释放。进行内核与硬件的数据交互。检测和处理设备出现的错误。2、内核程序中申请内存使用什么函数? 答案:kmalloc()、kzalloc()、vm…...

Starknet 的 JavaScript 库:Starknet.js、get-starknet和starknet-react

文章目录 Starknet 的 JavaScript 库Starknet.jsget-starknetstarknet-reactStarknet 的 JavaScript 库Starknet.js 官方:https://www.starknetjs.com/ Starknet.js 是一个与 Starknet 交互的 JavaScript 库,通常以脚本或去中心化形式进行交互应用程序。 Starknet.js 的灵感…...

debian11 安装 k8s,containerd ,阿里云镜像(已成功)

1. 环境准备 系统要求&#xff1a;至少 2GB RAM&#xff08;建议 4GB 或更多&#xff09;&#xff0c;网络连接。 节点准备&#xff1a;至少 3 台机器&#xff0c;1 台作为 Master 节点&#xff0c;2 台作为 Worker 节点。 安装sudo apt update apt install sudo设置主机名&a…...

Spring Task定时任务

目录 1、介绍 2、cron表达式 2.1、在线生成器 2.2、通配符 3、代码示例 3.1、使用步骤 3.2、 代码开发 3.3、测试 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发…...

【设计模式】23中设计模式笔记

设计模式分类 模板方法模式 核心就是设计一个部分抽象类。 这个类具有少量具体的方法&#xff0c;和大量抽象的方法&#xff0c;具体的方法是为外界提供服务的点&#xff0c;具体方法中定义了抽象方法的执行序列 装饰器模式 现在有一个对象A&#xff0c;希望A的a方法被修饰 …...

类加载过程介绍

一、类的生命周期 类被加载到jvm虚拟机内存开始&#xff0c;到卸载出内存为止&#xff0c;他的生命周期可以分为&#xff1a;加载->验证->准备->解析->初始化->使用->卸载。 其中验证、准备、解析统一称为链接阶段 1、加载 将类的字节码载入方法区中&#xf…...

pytorch创建模型方式

1.继承自nn.Module的方式 from torch import nn import torch.nn.functional as F 继承自nn.Moduleclass LModel(nn.Module):def __init__(self):super().__init__()self.L1 nn.Linear(10,10)self.L2 nn.Linear(10,64)self.L3 nn.Linear(64,10)self.L4 nn.Linear(10,5)se…...

MySQL 基础知识(五)之数据增删改

目录 1 插入数据 2 删除数据 3 更改数据 创建 goods 表 drop table if exists goods; create table goods ( id int(10) primary key auto_increment, name varchar(14) unique, stockdate date )charsetutf8; 1 插入数据 当要插入的数据为日期/时间类型时&#xff0c;如果…...

紫微斗数双星组合:廉贞天府在辰戌

文章目录 前言内容总结 前言 紫微斗数双星组合&#xff1a;廉贞天府在辰戌 内容 紫微斗数双星组合&#xff1a;廉贞天府在辰戌 性格分析 廉贞天府同坐辰、戌宫&#xff0c;若无煞星冲破&#xff0c;为“天府朝垣格”&#xff0c;也为“府相朝垣格”&#xff0c;富贵双全&am…...

人工智能|深度学习——基于全局注意力的改进YOLOv7-AC的水下场景目标检测系统

代码下载&#xff1a; 基于全局注意力的改进YOLOv7-AC的水下场景目标检测系统.zip资源-CSDN文库 1.研究的背景 水下场景目标检测是水下机器人、水下无人机和水下监控等领域中的重要任务之一。然而&#xff0c;由于水下环境的复杂性和特殊性&#xff0c;水下目标检测面临着许多挑…...

使用 C++23 从零实现 RISC-V 模拟器(1):最简CPU

&#x1f449;&#x1f3fb; 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」&#xff1a;https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc 本节实现一个最简的 CPU &#xff0c;最终能够解析 add 和 addi 两个指令。如果对计算机组成原理已经有所了…...

顺序表、链表(ArrayList、LinkedList)

目录 前言&#xff1a; 顺序表&#xff08;ArrayList&#xff09;&#xff1a; 顺序表的原理&#xff1a; ArrayList源码&#xff1a; 的含义&#xff1a;​编辑 ArrayList的相关方法&#xff1a;​编辑 向上转型List&#xff1a; 练习题&#xff08;杨辉三角&#x…...

第11讲投票创建后端实现

投票创建页面实现 文件选择上传组件 uni-file-picker 扩展组件 安装 https://ext.dcloud.net.cn/plugin?nameuni-file-picker 日期选择器uni-datetime-picker组件 安装 https://ext.dcloud.net.cn/plugin?nameuni-datetime-picker iconfont小图标 https://www.iconfont…...

SNMP 简单网络管理协议、网络管理

目录 1 网络管理 1.1 网络管理的五大功能 1.2 网络管理的一般模型 1.3 网络管理模型中的主要构件 1.4 被管对象 (Managed Object) 1.5 代理 (agent) 1.6 网络管理协议 1.6.1 简单网络管理协议 SNMP 1.6.2 SNMP 的指导思想 1.6.3 SNMP 的管理站和委托代理 1.6.4 SNMP…...

计算机设计大赛 深度学习YOLOv5车辆颜色识别检测 - python opencv

文章目录 1 前言2 实现效果3 CNN卷积神经网络4 Yolov56 数据集处理及模型训练5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0…...

OpenCV-36 多边形逼近与凸包

目录 一、多边形的逼近 二、凸包 一、多边形的逼近 findContours后的轮廓信息countours可能过于复杂不平滑&#xff0c;可以用approxPolyDP函数对该多边形曲线做适当近似&#xff0c;这就是轮廓的多边形逼近。 apporxPolyDP就是以多边形去逼近轮廓&#xff0c;采用的是Doug…...

transformer中的QKV是如何得到的?

多头自注意力机制&#xff1a;...

console.log导致内存泄露 打包时自动去掉console.log方法

webpack通过工具&#xff1a;terser 使用前需要先安装一下 vue.config.js const { defineConfig } require(vue/cli-servise); module.exports defineConfig({transpileDependencies:true,terser:{terserOptions:{compress:{drop_console:true,drop_debugger:true,},},},}…...

Python AOT编译面试通关手册(仅限2026 Q1–Q3内推通道开放期|含6家头部公司真实压轴题及参考实现)

第一章&#xff1a;Python AOT编译技术演进与2026面试全景图Python 长期以来以解释执行和 JIT&#xff08;如 PyPy&#xff09;为主流&#xff0c;但面向云原生、边缘计算与安全敏感场景&#xff0c;AOT&#xff08;Ahead-of-Time&#xff09;编译正加速进入主流视野。从早期的…...

FPGA仿真数据高效流转:Vivado与Matlab的自动化处理链路

1. 从Vivado到Matlab的数据流转痛点 做过FPGA开发的朋友都知道&#xff0c;仿真阶段产生的数据就像金矿&#xff0c;但要把这些"矿石"提炼成有价值的分析结果&#xff0c;中间的数据搬运工作常常让人头疼。我最近在做一个无线通信项目时就深有体会&#xff1a;Vivado…...

OpenClaw私有化部署指南:Qwen3-VL:30B+飞书智能助手

OpenClaw私有化部署指南&#xff1a;Qwen3-VL:30B飞书智能助手 1. 为什么选择本地化部署&#xff1f; 去年我接手了一个需要处理大量敏感数据的项目&#xff0c;团队最初尝试使用公有云API&#xff0c;但很快遇到了数据合规问题。这促使我开始研究本地化AI解决方案&#xff0…...

lite-avatar形象库保姆级教学:从CSDN控制台创建GPU实例到数字人上线全过程

lite-avatar形象库保姆级教学&#xff1a;从CSDN控制台创建GPU实例到数字人上线全过程 桦漫AIGC集成开发 | 微信: henryhan1117 1. 开篇&#xff1a;为什么选择lite-avatar形象库&#xff1f; 如果你正在寻找高质量的数字人形象&#xff0c;但又不想从零开始训练模型&#xff…...

毕设「零焦虑」实测:paperzz 四步流水线,把本科毕业论文从 0 写到 12000 字

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿/期刊论文paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation 谁本科毕设没陷入过「选题卡壳→文献凑数→框架乱套→格式崩溃」的死循环&#xff1f;对着万字要求…...

10xGenomics单细胞测序选3‘还是5‘?一文讲清免疫组库与基因表达分析的黄金选择

10xGenomics单细胞测序&#xff1a;3与5端策略在免疫组库与基因表达分析中的科学抉择 当实验室的离心机停止运转&#xff0c;科研人员往往面临一个关键抉择&#xff1a;该选择3还是5端单细胞测序&#xff1f;这个看似技术性的选择&#xff0c;实则直接影响着后续免疫组库分析的…...

提升arduino开发效率:用快马平台一键生成常用工具模块代码

作为一名经常折腾Arduino的开发者&#xff0c;我发现在项目开发中&#xff0c;总有些重复性的代码需要反复编写。最近尝试用InsCode(快马)平台来生成这些常用工具模块&#xff0c;效率提升非常明显。今天就把我的实践心得分享给大家。 I2C设备扫描功能 在连接多个I2C设备时&…...

拯救你的机械键盘:3步告别按键连击烦恼

拯救你的机械键盘&#xff1a;3步告别按键连击烦恼 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 你是否曾经在打字时突然发现屏幕上出…...

效率革命:借力快马AI生成智能安装脚本,一键部署复杂工程环境

今天想和大家分享一个提升开发效率的实用技巧&#xff1a;如何用AI生成智能安装脚本&#xff0c;快速搭建复杂的微服务演示环境。最近在尝试搭建一个包含用户服务、订单服务和商品服务的本地演示环境时&#xff0c;发现手动配置实在太耗时&#xff0c;于是尝试用InsCode(快马)平…...

Flux 图像生成 API 集成指南

在本篇文章中&#xff0c;我们将为您介绍 Flux 图像生成 API 的集成步骤。通过该 API&#xff0c;您可以输入自定义参数以生成官方的 Flux 图像。Flux 图像生成 API 是一个强大的工具&#xff0c;适用于需要图像生成的应用场景&#xff0c;如内容创作、游戏开发和广告设计等。 …...