PTA 7-224 sdut-C语言实验-排序问题
输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。
输入格式:
输入数据有一行,包含10个整数,用空格分开。
输出格式:
输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。
输入样例:
1 2 3 5 4 6 8 9 10 7
输出样例:
在这里给出相应的输出。例如:
1 2 3 4 5 6 7 8 9 10
1 2 3 5 4 6 10 7 8 9
这段代码没有考虑数组中可能存在相同元素的情况,如果数组中有重复的元素,该程序只会输出找到的第一个匹配元素的位置。
#include <stdio.h>
#include <stdlib.h>#define N 10 // 定义常量N为10,表示数组的大小// 自定义比较函数,用于qsort函数中比较两个整数的大小
int cmp_int(const void* e1,const void* e2)
{return *(int*)e1-*(int*)e2;
}int main()
{int arr[N]; int arr2[N]; // 数组arr2,存放arr数组的副本for(int i=0; i<N; i++){scanf("%d", &arr[i]);arr2[i] = arr[i];}// 使用qsort函数对arr2数组进行排序,排序依据是cmp_int函数qsort(arr2, N, sizeof(int), cmp_int);// 输出排序后的arr2数组for(int i=0; i<N; i++){if(i == N-1) printf("%d", arr2[i]);elseprintf("%d ", arr2[i]); }printf("\n"); // 遍历排序后的arr2数组,找出每个元素在原始arr数组中的位置for(int i=0; i<N; i++) {for(int j=0; j<N; j++) {if(arr2[i] == arr[j]) // 找到匹配的元素{if(i == N-1) printf("%d", j+1); elseprintf("%d ", j+1);break; // 找到匹配退出内层循环}}}return 0;
}
改进代码思路:
1.冒泡排序,并且同时对两个数组进行操作:一个是实际存储数据的数组 `arr`,另一个是用于跟踪原始位置的数组 `index`
2. 数组 `arr` 用于存储用户输入的整数,数组 `index` 初始时被设置为 `{1, 2, 3, ..., 10}`,表示每个元素的初始位置
4. 程序调用 `bubble_sort` 函数对数组 `arr` 进行排序,同时修改数组 `index` 以反映排序过程中每个元素的位置变化。
这个程序的关键点在于,它不仅对输入的整数进行排序,还通过维护一个额外的 `index` 数组来跟踪排序过程中每个元素的位置变化。
#include <stdio.h>
// 升序
void bubble_sort(int arr[], int index[], int n) {int i, j, temp, temp_idx;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - 1 - i; j++) {if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;temp_idx = index[j];index[j] = index[j + 1];index[j + 1] = temp_idx;}}}
}int main() {int arr[10];int index[10];int i;for (i = 0; i < 10; i++) {scanf("%d", &arr[i]);index[i] = i + 1;}// 冒泡bubble_sort(arr, index, 10);for (i = 0; i < 10; i++) {if(i==9)printf("%d",arr[i]);elseprintf("%d ", arr[i]);}printf("\n");// 遍历for (i = 0; i < 10; i++) {if(i==9)printf("%d",index[i]);elseprintf("%d ", index[i]);}return 0;
}
相关文章:
PTA 7-224 sdut-C语言实验-排序问题
输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。 输入格式: 输入数据有一行,包含10个整数,用空格分开。 输出格式: 输出数据有两行,第一行为排序后的序列,第二行为排序…...
【JavaScript】3.2 JavaScript性能优化
文章目录 1. 避免全局查找2. 避免不必要的属性查找3. 使用快速的JavaScript方法4. 避免不必要的DOM操作5. 使用Web Workers进行后台处理总结 性能优化是任何编程语言的重要组成部分,JavaScript也不例外。在这个章节中,我们将探讨如何优化JavaScript代码&…...
pytorch bert实现文本分类
以imdb公开数据集为例,bert模型可以在huggingface上自行挑选 1.导入必要的库 import os import torch from torch.utils.data import DataLoader, TensorDataset, random_split from transformers import BertTokenizer, BertModel, BertConfig from torch import…...
《开箱元宇宙》:Madballs 解锁炫酷新境界,人物化身系列大卖
你是否曾想过,元宇宙是如何融入世界上最具代表性的品牌和名人的战略中的?在本期的《开箱元宇宙》 系列中,我们与 Madballs 的战略顾问 Derek Roberto 一起聊聊 Madballs 如何在 90 分钟内售罄 2,000 个人物化身系列,以及是什么原…...
4K-Resolution Photo Exposure Correction at 125 FPS with ~8K Parameters
MSLTNet开源 | 4K分辨率125FPS8K的参数量,怎养才可以拒绝这样的模型呢? 错误的曝光照片的校正已经被广泛使用深度卷积神经网络或Transformer进行广泛修正。尽管这些方法具有令人鼓舞的表现,但它们通常在高分辨率照片上具有大量的参数数量和沉…...
网络初识:局域网广域网网络通信基础
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、局域网LAN是什么?二、广域网是什么:三. IP地址四.端口号五.认识协议5.1五元组 总结 前言 一、局域网LAN是什么? 局域网…...
JVM之jps虚拟机进程状态工具
jps虚拟机进程状态工具 1、jps jps:(JVM Process Status Tool),虚拟机进程状态工具,可以列出正在运行的虚拟机进程,并显示虚拟机执 行主类(Main Class,main()函数所在的类)的名称,…...
C++实现顺序栈的基本操作(扩展)
#include <stdio.h> typedef char ElemType; #define StackSize 100 /*顺序栈的初始分配空间*/ typedef struct { ElemType data[StackSize]; /*保存栈中元素*/int top; /*栈顶指针*/ } SqStack; void InitStack(SqStack &st) {st.top-1; } …...
用python写一个简单的爬虫
爬虫是一种自动化程序,用于从互联网上获取数据。它能够模拟人类浏览网页的行为,访问网页并提取所需的信息。爬虫在很多领域都有广泛的应用,例如数据采集、信息监控、搜索引擎索引等。 下面是一个使用Python编写的简单爬虫示例: …...
分布式追踪
目录 文章目录 目录自定义指标1.删除标签2.添加指标3.禁用指标 分布式追踪上下文传递Jaeger 关于我最后最后 自定义指标 除了 Istio 自带的指标外,我们还可以自定义指标,要自定指标需要用到 Istio 提供的 Telemetry API,该 API 能够灵活地配…...
make -c VS make -f
make 是一个用于构建(编译)项目的工具,它通过读取一个名为 Makefile 的文件来执行构建任务。make 命令有很多选项和参数,其中包括 -c 和 -f。 make -c: 作用:指定进入指定的目录并执行相应的 Makefile。 示…...
Unity 代码控制Color无变化
Unity中,我们给Color的赋值比较常用的方法是: 1、使用预定义颜色常量: Color color Color.white; //白色 Color color Color.black; //黑色 Color color Color.red; //红色 Color color Color.green; //绿色 Color color Color.blue; …...
【Erlang进阶学习】2、匿名函数
受到其它一些函数式编程开发语言的影响,在Erlang语言中,将函数作为一个对象,赋予其“变量”的属性,即为我们的匿名函数 或 简称 fun,它具有以下特性: (匿名函数:不是定义在Erlang模…...
肖sir__mysql之视图__009
mysql之视图 一、什么是视图 视图是一个虚拟表(逻辑表),它不在数据库中以存储形式保存(本身包含数据),是在使用视图的时候动态生成。 二、视图作用 1、查询数据库中的非常复的数据 例如:多表&a…...
FPGA falsh相关知识总结
1.存储容量是128M/8 Mb16MB 2.有256个sector扇区*每个扇区64KB16MB 3.一页256Byte 4.页编程地址0256 5:在调试SPI时序的时候一定注意,miso和mosi两个管脚只要没发送数据就一定要悬空(处于高组态),不然指令会通过两…...
升辉清洁IPO:广东清洁服务“一哥”还需要讲好全国化的故事
近日,广东物业清洁服务“一哥”升辉清洁第四次冲击IPO成功,拟于12月5日在香港主板挂牌上市。自2021年4月第一次递交招股书,时隔两年半,升辉清洁终于拿到了上市的门票。 天眼查显示,升辉清洁成立于2000年,主…...
Python自动化办公:PDF文件的分割与合并
我们平时办公中,可能需要对pdf进行合并或者分割,但奈何没有可以白嫖的工具,此时python就是一个万能工具库。 其中PyPDF2是一个用于处理PDF文件的Python库,它提供了分割和合并PDF文件的功能。 在本篇博客中,我们将详细…...
破解app思路
1.会看smali代码逻辑 一.快速定位关键代码 1.分析流程 搜索特征字符串 搜索关键 api 通过方法名来判断方法的功能 2.快速定位关键代码 反编译 APK 程序 AndroidManifest.xml>包名/系统版本/组件 程序的主 activity(程序入口界面) 每个 Android 程序…...
36.位运算符
一.什么是位运算符 按照二进制位来进行运算的运算符叫做位运算符,所以要先将操作数转换成二进制(补码)的形式在运算。C语言的中的位运算符有: 运算符作用举例结果& 按位与(and) 0&00; 0&10; …...
springboot框架-美妆化妆品商城进货系统
目录系统架构设计技术选型与依赖数据库设计核心功能实现库存预警机制前端交互建议测试与部署扩展性考虑项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统架构设计 采用SpringBoot MyBatis-Plus MySQL构建后端,…...
Dify向量检索精度跃升47%的秘密(重排序Pipeline低延迟部署避坑手册)
第一章:Dify重排序算法精度跃升47%的核心动因解析Dify v0.12.0 引入的重排序(Reranking)模块并非简单叠加模型,而是通过三重协同优化机制实现精度质变。核心突破在于将传统单阶段打分范式升级为「语义对齐—上下文感知—动态归一化…...
从‘深度学习之美’到TensorFlow 2.9:一个MNIST手写识别项目的实战重构记
1. 当经典教材遇上TensorFlow 2.9:我的MNIST重构历险记 记得第一次翻开《深度学习之美》这本书时,我被其中用TensorFlow实现MNIST手写识别的案例深深吸引。但当我兴冲冲打开电脑准备复现时,却发现书中的TensorFlow 1.x代码在2.9环境下几乎寸步…...
LIN总线测试避坑指南:为什么你的校验和测试总通不过?从经典型到增强型的实战解析
LIN总线校验和测试全攻略:从算法原理到故障排查的深度实践 在汽车电子系统的开发与测试中,LIN总线作为CAN总线的补充,广泛应用于车门模块、座椅控制、空调系统等对带宽要求不高的场景。而校验和作为LIN报文数据完整性的重要保障,其…...
效率直接起飞!盘点2026年全网顶尖的AI论文工具
一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂的AI论文工具,实测提速效果惊人,覆盖选题构思、文献整理、内容生成、格式排版全流程,让你高效搞定论文,告别熬夜赶工。 一、全流程王者:一站式搞定论文全链路&…...
AI写论文不再难,4款AI论文生成工具带你开启高效写作之旅!
在2025年愈演愈烈的学术写作智能化趋势中,越来越多的人选择借助AI写论文工具。现实中许多这样的工具在撰写硕士、博士论文等长篇学术作品时,常常缺乏必要的理论深度,逻辑也显得比较松散。普通的AI论文写作工具显然无法满足这些专业写作的需求…...
新手零门槛入门:用快马生成你的第一个jiyutrainer式Python练习脚本
作为一个刚接触Python的新手,想要练习编程却常常被各种环境配置和工具安装搞得晕头转向。最近我发现了一个特别适合新手入门的方法——使用InsCode(快马)平台来生成自己的第一个Python练习脚本。下面我就来分享一下这个零门槛的入门体验。 为什么选择jiyutrainer式练…...
探索Java字节码的秘密:专业级反编译工具实战指南
探索Java字节码的秘密:专业级反编译工具实战指南 【免费下载链接】jd-gui A standalone Java Decompiler GUI 项目地址: https://gitcode.com/gh_mirrors/jd/jd-gui Java反编译工具是中级开发者提升代码分析效率的关键利器,它能够将编译后的字节码…...
MCP 测试文章 1774508531523
这是一篇来自 MCP Server 的测试文章 测试正常工作!...
成本控制艺术:OpenClaw+百川2-13B量化版的Token节省技巧
成本控制艺术:OpenClaw百川2-13B量化版的Token节省技巧 1. 为什么需要关注Token消耗? 当我第一次在本地部署OpenClaw并接入百川2-13B量化版模型时,就被它强大的自动化能力震撼了。这个组合可以让我的电脑像真人一样处理各种任务——从整理文…...
