按身高和体重排队,运动会(C 语言)

题目

某学校举行运动会,学生们按编号(1、2、3.....n)进行标识,
现需要按照身高由低到高排列,
对身高相同的人,按体重由轻到重排列,
对于身高体重都相同的人,维持原有的编号顺序关系。
请输出排列后的学生编号

输入

两个序列,每个序列由N个正整数组成,(0 < n <= 100)
第一个序列中的数值代表身高,第二个序列中的数值代表体重。

输出

排列结果,每个数据都是原始序列中的学生编号,编号从1开始。

示例一

输入
4
100 100 120 130
40 30 60 50
输出
2 1 3 4

示例一

输入
3
90 110 90
45 60 45
输出
1 3 2

代码

#include <stdio.h>
#include <stdlib.h>
typedef struct {int id;     // 学生编号int height; // 学生身高int weight; // 学生体重
} Student;// 定义比较函数,用于qsort排序。根据题目要求,先按身高由低到高排序,
// 身高相同时按体重由轻到重排序,体重再相同时维持原有的编号顺序关系。
int cmp(const void *a, const void *b) {Student *s1 = (Student *)a;Student *s2 = (Student *)b;// 比较身高,若身高不同则按照身高大小返回结果if (s1->height != s2->height) {return s1->height - s2->height;}// 身高相同的情况下,比较体重,若体重不同则按照体重大小返回结果else if ((s1->height == s2->height) && (s1->weight != s2->weight)) {return s1->weight - s2->weight;}// 当身高和体重都相同时,保持原始编号顺序,即按照id从小到大排序else {return s1->id - s2->id;}
}int main() {int n;           // 学生人数scanf("%d", &n); // 读取学生人数// 初始化学生结构体数组Student stu[100];for (int i = 0; i < n; i++) {stu[i].id = i + 1;           // 学生编号从1开始scanf("%d", &stu[i].height); // 读取学生的身高信息}// 读取学生的体重信息for (int i = 0; i < n; i++) {scanf("%d", &stu[i].weight);}// 使用qsort进行排序,传入学生结构体数组、学生数量、单个元素大小及比较函数qsort(stu, n, sizeof(Student), cmp);// 输出排序后学生的编号for (int i = 0; i < n; i++) {printf("%d ", stu[i].id);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/693611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第五篇【传奇开心果系列】Python文本和语音相互转换库技术点案例示例:详细解读pyttsx3的`preprocess_text`函数文本预处理。

传奇开心果短博文系列 系列短博文目录Python文本和语音相互转换库技术点案例示例系列 短博文目录前言一、pyttsx3的preprocess_text函数文本预处理基本用法示例代码二、实现更复杂的文本预处理逻辑示例代码三、去除停用词、词干提取示例代码四、词形还原、拼写纠正示例代码五、…

代码随想录算法训练营第57天 | 1143.最长公共子序列 1035.不相交的线 53.最大子序和

最长公共子序列 dp[i][j] 表示字符串1中 [0, i-1] 子串与字符串2中 [0, j-1] 子串之间的最长公共子序列长度。注意这里并不要求公共子序列一定以下标 i-1 或 j-1 结尾。因为这里的公共子序列不必须连续&#xff0c;这样定义可以使得递推方便一些。 当进行遍历递推时&#xff0c…

excel合并多列单元格并保留数据

Sub 合并多个单元格并保留数据()Dim rng As RangeDim val As StringDim cell As RangeSet rng SelectionIf rng.Cells.Count < 1 ThenExit SubEnd IfApplication.ScreenUpdating FalseApplication.DisplayAlerts FalseFor Each cell In rngIf cell.Value <> "…

U盘重装MAC OS遇到 无法识别文件系统和磁盘无法读取问题

一台windows的电脑&#xff0c;一个差不多够大的U盘我这里差不多用了13G左右。 .dmg文件好难搞&#xff0c;不是难下&#xff0c;是下载转载后无法识别&#xff0c;所以很需要 带引导的os文件. 一个windows下dmg镜像恢复工具&#xff0c;这里用的是TransMac 10.4 &#xff0c;…

深入浅出 Python 类与对象

Python 是一种面向对象的编程语言,这意味着我们可以使用类(class)和对象(object)来组织和操作数据。在本文中,我们将详细介绍 Python 中的类与对象,以及它们的相关概念和用法。 一、类与对象的基本概念 类是面向对象编程中的一个关键概念,它是具有相同属性和方法的对…

三防平板丨手持工业平板丨ONERugged工业三防平板丨推动数字化转型

随着科技的发展&#xff0c;数字化转型已经成为企业转型升级的必由之路。而在数字化转型中&#xff0c;三防平板作为一种重要的工具&#xff0c;可以极大地推动企业的数字化转型。本文将从以下几个方面探讨三防平板如何推动数字化转型。 一、提高工作效率 ONERugged加固平板的…

Web自动化测试基础篇

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、目的 web自动化测试作为软件自动化测试领域中绕不过去的一…

设计模式----单例模式

单例模式 只生成一个对象实例&#xff0c;减少了系统的开销&#xff1b;方便数据访问。 保证一个类只有一个实例&#xff0c;并且提供一个访问该实例的全局访问点。 系统中如果一个类仅有一个实例&#xff0c;可以用来存储数据。全局访问 单例实现 1、将该类的构造方法定义为…

shopify如何在元字段中使用元对象

在Shopify中&#xff0c;您可以使用元字段&#xff08;Metafields&#xff09;来存储和管理自定义的附加数据。元字段允许您在产品、变体、订单和其他实体中添加额外的信息&#xff0c;以满足特定的业务需求。而元对象&#xff08;Metaobject&#xff09;是指在元字段中存储的实…

Cell |从实验室到田间,还有多远?

期刊&#xff1a;Cell 时间&#xff1a;2023年8月 植物微生物群是指植物表面、细胞间隙、器官内寄生的细菌、真菌、病毒、古菌群落。植物与微生物群的互作在植物生理、生态和进化过程中扮演重要角色。有益微生物定殖植物&#xff0c;可以持续对植物生产力产生表型效应&…

Django学习记录03——员工部门案例

1、项目初始化 1.1 项目创建 1.2 APP的创建 1.2.1 方法一 命令配置 python manage.py startapp app011.2.2 方法二 Pycharm配置 在Django Structure 中创建APP 2.设计表结构 2.1 表结构 注意&#xff1a; 1.员工表与部门表关联时id关联 节省存储&#xff0c;但是查找耗时…

2024信息工程、软件与计算机工程国际会议(ICIESCE2024)

2024信息工程、软件与计算机工程国际会议&#xff08;ICIESCE2024) 会议简介 随着互联网的不断创新&#xff0c;信息工程、软件和计算机工程在各个领域得到了广泛应用。为了为来自世界各地的专家学者提供一个分享通信和计算机工程领域研究成果的平台&#xff0c;2024年信息工…

Linux(四)__用户和用户组管理

介绍 Linux系统是一个多用户多任务的分时操作系统。 Linux 系统支持多个用户在同一时间内登陆&#xff0c;不同用户可以执行不同的任务&#xff0c;并且互不影响。不同用户具有不问的权限&#xff0c;毎个用户在权限允许的范围内完成不间的任务&#xff0c;Linux 正是通过这种…

Leetcode刷题笔记题解(C++):203. 移除链表元素

思路&#xff1a;不同的情况出现了&#xff0c;就是第一个节点要是为等于val的节点&#xff0c;可以新建一个节点&#xff0c;并next指向head&#xff0c;这样就可以遍历新的链表来删除节点 /*** Definition for singly-linked list.* struct ListNode {* int val;* L…

MSSQL运用

做过的事情&#xff0c;隔几年又再做相同的事情&#xff0c;做一下记录。 角色与权限 创建账号与设定执行存储过程权限 Use testDB CREATE LOGIN acct WITH PASSWORDp1 CREATE USER acct FOR LOGIN acct GO GRANT EXECUTE ON SP_Test TO acct; GO 存储过程 调用写好的SQL语…

【水文】qsort排序

#include <stdio.h> #include <stdlib.h> // 比较函数&#xff0c;用于qsort排序 int compare(const void *a, const void *b) { return *(int *)a - *(int *)b; } int main() { int arr[] {9, 5, 7, 3, 1}; int size sizeof(arr) / sizeof(int); printf(&quo…

Java最全面试总结——5. MyBatis篇

1、什么是MyBatis &#xff08;1&#xff09;Mybatis是一个半ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;开发时只需要关注SQL 语句本身&#xff0c;不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直…

四个ChatGPT在学术论文写作中的要点!【建议收藏】

在论文写作过程中&#xff0c;写作不仅是一种表达&#xff0c;更是一种艺术。论文写作是一项复杂而精细的任务&#xff0c;它要求作者不仅能清晰地传达思想&#xff0c;还要能够精确地界定研究范围和问题。这是一个充满挑战的过程&#xff0c;特别是当你试图将那些盘旋在脑海中…

深度解析Sora的核心技术

Sora要解决的核心问题 Sora面临的挑战是将不同类型的视觉信息&#xff0c;如视频、文本、图像和声音等&#xff0c;整合为一种共同的表征形式。这种转换是实现统一训练过程的关键&#xff0c;旨在将各类数据集中到一个训练框架中&#xff0c;以便于进行大规模的统一学习。简而…

http 和 https 的区别?

目录 1.http 和 https 的基本概念 2.http 和 https 的区别 3.https 协议的工作原理 4.https 协议的优点 5.https 协议的缺点 1.http 和 https 的基本概念 http: 超文本传输协议&#xff0c;是互联网上应用最为广泛的一种网络协议&#xff0c;是一个客户端和服务器端请求和…