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

成绩排序

成绩排序

      • C语言代码
      • C++ 代码
      • Java代码
      • Python代码


💐The Begin💐点点关注,收藏不迷路💐

给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。

输入

第一行为n (0 < n < 20),表示班里的学生数目;

接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。

输出

把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。

样例输入

4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28

样例输出

Joey 92
Hanmeimei 90 
Kitty 80
Tim 28

C语言代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 结构体定义,存储学生姓名和成绩
struct Student {char name[21];int score;
};// 比较函数,用于qsort,先按成绩降序,成绩相同按名字字典序升序
int compare(const void *a, const void *b) {struct Student *s1 = (struct Student *)a;struct Student *s2 = (struct Student *)b;if (s1->score < s2->score) {return 1;} else if (s1->score > s2->score) {return -1;} else {return strcmp(s1->name, s2->name);}
}int main() {int n;scanf("%d", &n);  // 输入学生数目nstruct Student students[n];for (int i = 0; i < n; i++) {scanf("%s %d", students[i].name, &students[i].score);  // 输入每个学生名字和成绩}qsort(students, n, sizeof(struct Student), compare);  // 使用qsort排序for (int i = 0; i < n; i++) {printf("%s %d\n", students[i].name, students[i].score);  // 输出排序后的学生名字和成绩}return 0;
}

C++ 代码

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;// 结构体定义,存储学生姓名和成绩
struct Student {string name;int score;
};// 自定义比较函数,先按成绩降序,成绩相同按名字字典序升序
bool compare(Student s1, Student s2) {if (s1.score < s2.score) {return false;} else if (s1.score > s2.score) {return true;} else {return s1.name < s2.name;}
}int main() {int n;cin >> n;  // 输入学生数目nvector<Student> students;for (int i = 0; i < n; i++) {string name;int score;cin >> name >> score;  // 输入每个学生名字和成绩students.push_back({name, score});}sort(students.begin(), students.end(), compare);  // 使用sort排序for (int i = 0; i < students.size(); i++) {cout << students[i].name << " " << students[i].score << endl;  // 输出排序后的学生名字和成绩}return 0;
}

Java代码

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;class Student {String name;int score;Student(String name, int score) {this.name = name;this.score = score;}
}public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();  // 输入学生数目nArrayList<Student> students = new ArrayList<>();for (int i = 0; i < n; i++) {String name = scanner.next();int score = scanner.nextInt();  // 输入每个学生名字和成绩students.add(new Student(name, score));}Collections.sort(students, (s1, s2) -> {if (s1.score < s2.score) {return 1;} else if (s1.score > s2.score) {return -1;} else {return s1.name.compareTo(s2.name);}});  // 使用Collections.sort排序for (Student s : students) {System.out.println(s.name + " " + s.score);  // 输出排序后的学生名字和成绩}}
}

Python代码

n = int(input())  # 输入学生数目n
students = []
for _ in range(n):name, score = input().split()  # 输入每个学生名字和成绩students.append((name, int(score)))
students.sort(key=lambda x: (-x[1], x[0]))  # 先按成绩降序,成绩相同按名字字典序升序排序
for student in students:print(student[0], student[1])  # 输出排序后的学生名字和成绩

在这里插入图片描述


💐The End💐点点关注,收藏不迷路💐

相关文章:

成绩排序

成绩排序 C语言代码C 代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 给出班里某门课程的成绩单&#xff0c;请你按成绩从高到低对成绩单排序输出&#xff0c;如果有相同分数则名字字典序小的在前。 输入 第一行为…...

MySQL底层概述—7.优化原则及慢查询

大纲 1.Explain概述 2.Explain详解 3.索引优化数据准备 4.索引优化原则详解 5.慢查询设置与测试 6.慢查询SQL优化思路 1.Explain概述 使用Explain关键字可以模拟查询优化器来执行SQL查询语句&#xff0c;从而知道MySQL是如何处理SQL语句的&#xff0c;从而分析出查询语句…...

R““有什么作用在C++中,举例说明

在C中&#xff0c;R""&#xff08;双引号前加R&#xff09;表示一个原始字符串字面量&#xff08;Raw String Literal&#xff09;&#xff0c;其主要作用是让字符串中的反斜杠\和其他特殊字符不被当作转义字符处理&#xff0c;而是保留其原始字面意义。这在处理包含…...

linux中top 命令返回数据解释

当您在 Linux 终端中运行 top 命令时,它会显示一个动态更新的系统状态视图,其中包括许多有关系统性能的数据。下面是对 top 命令返回数据的详细解释: 标题栏 top - 22:46:12 up 2 days, 3:14, 1 user, load average: 0.05, 0.07, 0.09 22:46:12:当前时间。up 2 days, 3:14…...

深入理解二叉树及其变体:平衡二叉树、红黑树、B-树和B+树

一、二叉树简介 二叉树是一种非常常见的数据结构&#xff0c;它具有以下特点&#xff1a; 每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。每个节点的左子树和右子树都是二叉树。 二叉树的常见操作包括&#xff1a;创建、插入、删除、查找、遍历等。下面…...

C++ 编程技巧之StrongType(1)

最近看到一个NamedType的开源库&#xff0c;被里面的Strong Type这个概念和里面的模版实现给秀了一脸&#xff0c;特此总结学习一下 GitHub - joboccara/NamedType: Implementation of strong types in C C本身是一种强类型语言&#xff0c;类型包括int、double等这些build i…...

芯片测试-smith圆图

smith圆图 &#x1f4a2;smith圆图的故事&#x1f4a2;&#x1f4a2;smith圆图中的各部分来历&#x1f4a2;&#x1f4a2;公式推导&#x1f4a2;&#x1f4a2;等电阻圆特点&#x1f4a2;&#x1f4a2;等电抗圆&#x1f4a2;&#x1f4a2;等电抗圆特点&#x1f4a2; &#x1f4a…...

HTML技术深度解析:构建现代网页的基石

引言 HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是构建网页和网上应用的标准标记语言。随着互联网技术的飞速发展&#xff0c;HTML已经成为前端开发中不可或缺的核心技术之一。本文将深入探讨HTML的基本概念、核心元素、最新发展以及在…...

Leecode刷题C语言之判断是否可以赢得数字游戏

执行结果:通过 执行用时和内存消耗如下&#xff1a; bool canAliceWin(int* nums, int numsSize) {int single_digit_sum 0;int double_digit_sum 0;for (int i 0; i < numsSize; i) {if (nums[i] < 10) {single_digit_sum nums[i];} else {double_digit_sum nums[…...

Ubuntu 关机命令

在 Ubuntu 系统中&#xff0c;有几种方法可以关机。以下是常用的关机命令及其说明&#xff1a; 1. 使用 shutdown 命令 shutdown 命令是最常用和最灵活的关机方式。它可以设置定时关机&#xff0c;并且可以发送警告消息给所有登录用户。 立即关机 sudo shutdown now定时关机…...

数据采集中,除了IP池的IP被封,还有哪些常见问题?

在数据采集的过程中&#xff0c;代理IP池的使用无疑为我们打开了一扇通往信息宝库的大门。然而&#xff0c;除了IP被封禁这一常见问题外&#xff0c;还有许多其他问题可能影响数据采集的效果。本文将探讨在数据采集中&#xff0c;除了IP被封之外&#xff0c;还可能遇到的一些常…...

【Anaconda】 创建环境报错:CondaHTTPError: HTTP 000 CONNECTION FAILED for url

问题描述 使用 Anaconda 创建环境时报错&#xff1a; CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/free/noarch/repodata.json.bz2> Elapsed: -An HTTP error occurred when trying to retrieve this URL. HTTP errors are o…...

社交电商破局之“2+1 链动模式 O2O 商城小程序源码”赋能流量困境突围

摘要&#xff1a;本文聚焦于当下商家在流量困境中挣扎的现状&#xff0c;剖析传统电商高流量成本、平台流量获取难等痛点&#xff0c;阐述私域流量池兴起的缘由与价值。重点探究“21 链动模式 O2O 商城小程序源码”如何融入社交电商架构&#xff0c;通过创新机制与线上线下融合…...

【ArcGIS Pro微课1000例】0062:ArcGIS Pro3.3.1中文版安装教程(附安装包下载)

本文讲述ArcGIS Pro3.3.1中文版安装教程(附安装包下载)。 文章目录 一、ArcGIS Pro3.3.1中文版下载二、ArcGIS Pro3.3.1中文版安装一、ArcGIS Pro3.3.1中文版下载 【订阅专栏】,获取完整安装包及专栏配套实验数据。下载后解压,如下图所示: 二、ArcGIS Pro3.3.1中文版安装…...

Linux - web服务器

四、web服务器 1、基础知识 URL&#xff1a;Uniform Resource Locator&#xff0c;统一资源定位符&#xff0c;对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示&#xff0c;是互联网上标准资源的地址。 网址格式&#xff1a;<协议>://<主机或主机名&g…...

设计模式-适配器模式-注册器模式

设计模式-适配器模式-注册器模式 适配器模式 如果开发一个搜索中台&#xff0c;需要适配或接入不同的数据源&#xff0c;可能提供的方法参数和平台调用的方法参数不一致&#xff0c;可以使用适配器模式 适配器模式通过封装对象将复杂的转换过程隐藏于幕后。 被封装的对象甚至…...

减速机润滑油更换的最佳周期是多久?

减速机是工业设备中的重要组成部分&#xff0c;润滑油的使用对于其正常运转和寿命具有至关重要的作用。那么&#xff0c;减速机多久更换一次润滑油呢&#xff1f;实际上&#xff0c;减速机润滑油的更换周期受多种因素影响&#xff0c;以下是一些具体的更换周期建议&#xff1a;…...

程序执行堆栈执行模拟

所有的文件都是在硬盘&#xff08;磁盘&#xff09;上&#xff0c;调用时先调用javac指令的jdk编译成.class然后被java指令的jre送到内存中&#xff0c;java在内存中有自己的一片区域叫JVM&#xff0c;编译进来的文件首先进入方法区。 staitc的属性就是在进入内存的时候开辟了一…...

《Python基础》之数据加密模块hashlib的用法

目录 一、简介 二、用法 步骤一、导入hashlib库 步骤二、创建哈希对象 步骤三、往哈希对象中传值 1、可以在创建对象的时候传值 2、使用updata传值 步骤四、获取经过哈希对象加密后的值 三、注意事项 1、编码问题 2、安全性 3、多次传值 四、总结 一、简介 hashli…...

安装Fcitx5输入框架和输入法自动部署脚本(来自Mark24)-Ubuntu通用

在Ubuntu22.04上安装rime中文输入法的基本教程 上述文章接近废弃。 使用新逻辑配置基本的Fcitx5的输入法。 安装 第一步&#xff0c;下载相关组件 sudo nala install vim sudo nala install ruby sudo nala install fcitx5-rime第二步&#xff0c;设置语言为Fcitx5 而非 默认…...

XUnity.AutoTranslator:打破语言障碍的Unity游戏实时翻译插件终极指南

XUnity.AutoTranslator&#xff1a;打破语言障碍的Unity游戏实时翻译插件终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言不通而错过心爱的外语游戏&#xff1f;是否对复杂的游…...

Visual C++运行库智能修复技术方案:高效解决Windows软件依赖问题的终极指南

Visual C运行库智能修复技术方案&#xff1a;高效解决Windows软件依赖问题的终极指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C Redistributable运…...

别再死记硬背了!用‘知识卡片+思维导图’法搞定离散数学里的命题、谓词与代数系统

知识卡片与思维导图&#xff1a;离散数学的高效学习革命 离散数学常被学生称为"天书"——命题逻辑的符号迷宫、谓词逻辑的量化陷阱、代数系统的抽象森林&#xff0c;每个概念都像一座孤岛。传统线性笔记法让这些知识点在脑海中如散沙般难以聚合&#xff0c;这正是大多…...

别再死记硬背了!用Python代码动画演示组合数11个核心性质(附完整源码)

用Python动画拆解组合数&#xff1a;11个核心性质的动态演绎 数学公式总是让人望而生畏&#xff1f;当组合数学遇上Python动画&#xff0c;抽象概念瞬间变得鲜活起来。这不是又一篇枯燥的公式推导文章&#xff0c;而是一场用代码演绎数学之美的视觉盛宴。我们将用matplotlib和…...

ROS Melodic下,用Gazebo+ros_control搞定移动底盘+三轴机械臂的联合仿真(附避坑记录)

ROS Melodic下移动底盘与三轴机械臂的Gazebo联合仿真实战指南 当移动底盘遇上机械臂&#xff0c;问题总是比想象中多。上周深夜调试时&#xff0c;我的机械臂突然在Gazebo里表演起了"陀螺旋转"&#xff0c;而底盘却纹丝不动——这恰恰是ros_control配置中一个PID参数…...

SQL中标签的精确清理

在处理字符串数据时,尤其是在处理带有特定标签的数据时,常常会遇到一些棘手的问题。比如,我们想要从一组标签中移除特定标签(如 ‘وسم’),但在移除过程中可能会遇到意外的逗号或者空格问题。在本文中,我们将探讨如何在SQL中通过精确的语句来清理标签,同时解决这些常…...

从IEEE 1588到EtherCAT DC:深入对比两种工业网络时间同步协议的核心差异与应用选型

工业网络时间同步技术深度解析&#xff1a;EtherCAT DC与IEEE 1588的实战选型指南 在智能制造和自动化控制领域&#xff0c;毫秒级的响应时间早已成为过去式。现代工业网络对时间同步精度的要求已经进入纳秒时代——这相当于光在真空中仅能传播30厘米的时间跨度。当多个伺服电…...

HS2-HF_Patch终极指南:一站式汉化与功能增强解决方案

HS2-HF_Patch终极指南&#xff1a;一站式汉化与功能增强解决方案 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是《Honey Select 2》玩家的终极解…...

CANN/ops-nn LpLoss算子

LpLoss 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atl…...

从零到一:在Visual Studio中集成海康机器人工业相机SDK的完整指南

1. 环境准备&#xff1a;搭建开发基础 第一次接触工业相机开发时&#xff0c;我也被各种专业术语和配置步骤搞得头晕眼花。后来发现只要把环境搭建好&#xff0c;后面的开发就会顺利很多。咱们先从最基础的软件安装开始&#xff0c;就像盖房子要先打地基一样。 Visual Studio的…...