有依次对应关系的数组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.mzph.cn/news/155972.shtml

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

相关文章

用vue实现pdf预览

iframe <iframe :src"fileURLOther"></iframe> import axios from "axios"; data() {return {fileURLOther: "",url:,id:} }methods&#xff1a;{openPDF() {axios({method: "get",url: this.url,//文件的urlparams: {fi…

Linux系统编程学习 NO.9——git、gdb

前言 本篇文章简单介绍了Linux操作系统中两个实用的开发工具git版本控制器和gdb调试器。 git 什么是git&#xff1f; git是一款开源的分布式版本控制软件。它不仅具有网络功能&#xff0c;还是服务端与客户端一体的软件。它可以高效的处理程序项目中的版本管理。它是Linux内…

深入理解Linux网络笔记(六):深度理解TCP连接建立过程

本文为《深入理解Linux网络》学习笔记&#xff0c;使用的Linux源码版本是3.10&#xff0c;网卡驱动默认采用的都是Intel的igb网卡驱动 Linux源码在线阅读&#xff1a;https://elixir.bootlin.com/linux/v3.10/source 5、深度理解TCP连接建立过程 1&#xff09;、深入理解liste…

python查找算法_顺序查找

顺序查找&#xff08;Sequential Search&#xff09;是一种简单直观的搜索算法&#xff0c;用于在无序数组中查找特定元素。它的基本思想是逐个遍历数组中的元素&#xff0c;直到找到目标元素或遍历完整个数组。本文将介绍顺序查找的基本原理&#xff0c;并通过Python代码进行详…

网络爬虫|Selenium——find_element_by_xpath()的几种方法

Xpath (XML Path Language)&#xff0c;是W3C定义的用来在XML文档中选择节点的语言 一、从根目录/开始 有点像Linux的文件查看&#xff0c;/代表根目录&#xff0c;一级一级的查找&#xff0c;直接子节点&#xff0c;相当于css_selector中的>号 /html/body/div/p 二、根据…

LTspice学习笔记

参考博文 LTspice 软件仿真入门–LLC开环仿真练习LTspice:模拟变压器的简单步骤SPICE 语言基本语法和规则

hashMap索引原理

平日里面经常使用map这种数据结构&#xff0c;令人称奇的是他的访问速度为什么那么快&#xff1f;为什么可以通过key以接近O(1)的速度查找&#xff1f; 一、基础数据结构特点分析 1.1数组 查找的时间复杂度为O(1) 插入时间复杂度为O(n) 1.2链表 查找的时间复杂度为O(n) 插…

【Rust】6、练习:自己实现 ls

文章目录 一、CLI Utilities Rust 学完&#xff0c;想找些练手的项目&#xff0c;怎么办&#xff1f;可参考这个文章&#xff0c;列出的 15 个项目。 一、CLI Utilities github 参考 lsd 项目地址 cargo.toml [dependencies] clap "2"main.rs extern crate cl…

【剑指offer|图解|链表】链表的中间结点 + 链表中倒数第k个结点

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、算法模板 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️链表的中间结点二. ⛳️链表中倒数第k个结点&#x1f4dd;结语 &#x1f4c…

CUDA核函数,如何设置grid和block即不超过大小又能够遍历整个volume

此问题答案来自于openAI 1、Grid 大小&#xff1a; Grid 的大小由 dim3 grid 定义&#xff0c;其三个分量分别表示在 x、y、z 方向上的 Grid 数量。Grid 的大小不应该超过 GPU 的最大 Grid 大小。cudaDeviceGetAttribute获取限制。 int maxGridSizeX, maxGridSizeY, maxGridS…

最全Redis面试题整理

什么是Redis&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存中数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。Redis支持多种数据结构&#xff0c;包括字符串、哈希表、列表、集合、有序集合等&#xff0c;这使得它非…

如何为视频添加旁白,有哪些操作技巧?

简而言之&#xff0c;画外音是视频的旁白&#xff0c;在教程视频中添加旁白可以使视频更加有趣&#xff0c;并向观看者传达更多的信息。 如果您是视频制作人&#xff0c;想要为视频添加旁白&#xff0c;可阅读以下文章&#xff0c;可以帮助您更好地进行配音。 制作配音的技巧…

2216. 美化数组的最少删除数 --力扣 --JAVA

题目 给你一个下标从 0 开始的整数数组 nums &#xff0c;如果满足下述条件&#xff0c;则认为数组 nums 是一个 美丽数组 &#xff1a; nums.length 为偶数对所有满足 i % 2 0 的下标 i &#xff0c;nums[i] ! nums[i 1] 均成立 注意&#xff0c;空数组同样认为是美丽数组。…

www.testfire.nets渗透测试报告

www.testfire.nets渗透测试报告 一、测试综述 1.1.测试⽬的 通过实施针对性的渗透测试&#xff0c;发现testfire.net⽹站的安全漏洞&#xff0c;锻炼自己的渗透水平 1.2.测试范围 域名&#xff1a;www.testfire.net IP:65.61.137.117 测试时间&#xff1a; 2023年11月…

pcl库问题遇到总结

1&#xff0c;memory.h触发断点 方法&#xff1a;VS&#xff1a;通过项目属性->C/C->代码生成->启用增强指令集->选择AVX 2&#xff0c;error C3083: “this_thread”标红 boost::this_thread::sleep(boost::posix_time::microseconds(100000)) 修改为 std::th…

AC修炼计划(AtCoder Beginner Contest 329)

传送门&#xff1a;&#xff33;&#xff4b;&#xff59; Inc, Programming Contest 2023&#xff08;AtCoder Beginner Contest 329&#xff09; - AtCoder A&#xff0c;B&#xff0c;C&#xff0c;D 这四道题比较简单&#xff0c;就不多叙述。 E - Stamp 这题是一道比较…

LeetCode5:最长回文子串

参考链接: &#x1f517;:【5. 最长回文子串 Longest Palindromic Substring【LeetCode 力扣官方题解】-哔哩哔哩】 具体代码 class Solution {public String longestPalindrome(String s) {int i0,j,k0,ns.length(),max_len1,begin0;char[] ch s.toCharArray();boolean[][] …

opencv-图像平滑

高斯平滑 高斯平滑即采用高斯卷积核对图像矩阵进行卷积操作。高斯卷积核是一个近似服从高斯分布的矩阵&#xff0c;随着距离中心点的距离增加&#xff0c;其值变小。这样进行平滑处理时&#xff0c;图像矩阵中锚点处像素值权重大&#xff0c;边缘处像素值权重小。 import cv2 …

Sentinel概述

Sentinel 框架通常指的是用于服务治理和流量控制的开源框架&#xff0c;特别是在微服务架构中。在不同的上下文中&#xff0c;可能有不同的 Sentinel 框架&#xff0c;但最常见的是 Alibaba 开源的 Sentinel 框架。 Alibaba Sentinel 框架是一个用于流量控制、熔断降级和系统负…

linux 下打印堆栈信息 jstack pstack gstack 有啥区别?分别的使用场景是啥?

jstack、pstack和gstack是在Linux系统下用于打印堆栈信息的工具&#xff0c;它们的使用场景和功能略有不同。 jstack&#xff1a;jstack是Java虚拟机自带的工具&#xff0c;用于打印Java进程的堆栈信息。它可以显示Java线程的状态、锁信息、线程堆栈等。jstack主要用于诊断Java…