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

有依次对应关系的数组X、Y、Z,如何排序其中一个X数组,使得另外的数组还与排序完成后的数组相对应(C语言实现)

1. 目的

   有依次对应关系的数组X、Y、Z,排序其中一个X数组,使得另外的数组还与排序完成后的数组相对应,并打印出排序完成后的X、Y、Z数组。

2. 具体实现

  以下面的这个对应关系为例,进行相应编程实现。

X = [3.7,7.7,-6.6,1.5,-4.5,7.0,3.2,-0.7,9.0,-2.2];
Y = [-1.2,5.1,9.7,3.6,-6.6,7.6,-3.0,10.0,-4.1,0.1];
Z = [10.2,8.0,4.8,17.6,5.6,0.2,14.8,6.2,3.7,11.9];

  要对其中数组进行排序并保持它们之间的一一对应关系,可以使用结构体数组来实现。对于排序,这里使用简单的冒泡排序(其他排序都可以)来实现,具体代码如下:

#include <stdio.h>
// 定义结构体
typedef struct {float x;float y;float z;
} Point;//简单的冒泡排序
void bubbleSort(Point arr[], int n) {for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if (arr[j].x > arr[j+1].x) {// 交换结构体元素Point temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}
}
int main() {// 假设有三个数组float  X[10] = {3.7,7.7,-6.6,1.5,-4.5,7.0,3.2,-0.7,9.0,-2.2};float  Y[10] = {-1.2,5.1,9.7,3.6,-6.6,7.6,-3.0,10.0,-4.1,0.1};float  Z[10] = {10.2,8.0,4.8,17.6,5.6,0.2,14.8,6.2,3.7,11.9};// 创建结构体数组并初始化Point points[10];for (int i = 0; i < 10; i++) {points[i].x = X[i];points[i].y = Y[i];points[i].z = Z[i];}// 对结构体数组进行排序bubbleSort(points, 10);// 打印排序后的X数组结果printf(" X = [");for (int i = 0; i < 10; i++) {printf("%.1f", points[i].x);if (i < 9) {printf(", ");}}printf("];\n");// 打印排序后的Y数组结果printf(" Y = [");for (int i = 0; i < 10; i++) {printf("%.1f", points[i].y);if (i < 9) {printf(", ");}}printf("];\n");// 打印排序后的Z数组结果printf(" Z = [");for (int i = 0; i < 10; i++) {printf("%.1f", points[i].z);if (i < 9) {printf(", ");}}printf("];\n");return 0;
}

  运行结果如下:
在这里插入图片描述

http://www.lryc.cn/news/238183.html

相关文章:

  • Mysql之聚合函数
  • Flutter笔记:拖拽手势
  • 软件运维面试题
  • 代码随想录算法训练营第23期day53|1143.最长公共子序列、1035.不相交的线、53. 最大子序和
  • MySQL 的执行原理(五)
  • 如何快速将txt类型的日志文件转换为excel表格并进行数据分析报表统计图(如:饼图、折线图、柱状图)?
  • 内网穿透的应用-如何在Docker中部署MinIO服务并结合内网穿透实现公网访问本地管理界面
  • 关于Unity自带的保存简单且持久化数据PlayerPrefs类的使用
  • 力扣贪心——跳跃游戏I和II
  • 【SA8295P 源码分析 (三)】132 - GMSL2 协议分析 之 GPIO/SPI/I2C/UART 等通迅控制协议带宽消耗计算
  • 毕业论文GPT说:
  • Week-T10 数据增强
  • 史上最全!PMP实用应试技巧汇总!
  • 037、目标检测-SSD实现
  • 【开题报告】基于SpringBoot的摄影作品展示网站的设计与实现
  • SVR和SVM是什么关系
  • Flutter 3.16 中带来的更新
  • 批量插入数据与分页的原理及推导
  • SMART PLC累计流量功能块(梯形积分法+浮点数累加精度控制)
  • 【金融分析】Python:病人预约安排政策 | 金融模拟分析
  • 后端接口测试,令牌校验住,获取tocken 接口的方式
  • Ghidra逆向工具配置 MacOS 的启动台显示(Python)
  • 关于交换芯片调试 tx_delay rx_delay 的一点经验
  • 【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解
  • Spring Cloud 简介
  • Redis从入门到精通(二)- 入门篇
  • SpringDoc基础配置和集成OAuth2登录认证教程
  • 链路聚合-静态和动态区别
  • 发币成功,记录一下~
  • 一个完备的手游地形实现方案