恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

PTA 交换最小值和最大值 (15 分)

  • 首页
  • 资讯中心
  • /
  • PTA 交换最小值和最大值 (15 分)

相关资讯

超级完整的 Git的下载、安装、配置与使用 以及命令 2026/8/2 19:11:49
NoFences开源桌面分区管理工具:终极免费替代方案告别杂乱桌面 2026/8/2 19:11:49
【单片机课程设计/毕业设计】基于单片机 WiFi 模块的本地局域网智能配电控制系统设计 基于移动端的 STM32/51 单片机局域网 LED 指示控制系统实现(020901) 2026/8/2 19:11:49

最新资讯

AI舆情崩盘如何自救:从监测预警到话术设计的9个实战步骤(附2024最新合规红线清单)
STM32G0独立看门狗(IWDG)原理、配置与实战避坑指南
OBS Studio免费色彩校正指南:5分钟实现电影级画面质感
如何构建高性能WPF媒体播放器:ffmediaelement深度实践指南
Python包管理进阶:pip配置、换源与离线部署实战指南
JPEXS Free Flash Decompiler:专业SWF反编译工具完整指南

今日推荐

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

PTA 交换最小值和最大值 (15 分)

发布时间:2026/8/2 19:11:49
PTA 交换最小值和最大值 (15 分) 本题要求编写程序先将输入的一系列整数中的最小值与第一个数交换然后将最大值与最后一个数交换最后输出交换后的序列。注意题目保证最大和最小值都是唯一的。输入格式输入在第一行中给出一个正整数N≤10第二行给出N个整数数字间以空格分隔。输出格式在行中顺序输出交换后的序列每个整数后跟一个空格。输入样例5 8 2 5 1 4输出样例1 2 5 4 8记录我debug几个小时的题改了好几遍T-T,这是我的第一篇博客此题一开始做法是用选择排序但是选择排序中间的数字的顺序也会跟着改变后来我的想法是先找到最大值最小值然后再遍历数组在数组中找到对应的数再将对应的数根据题目要求的那样交换但很奇怪结果一直不对这是改过的正确代码#includestdio.h int main() { int array[10]; int n,j,i,k,temp,l; scanf(%d,n); for(i0;in;i) scanf(%d,array[i]); int minarray[0],maxarray[n-1]; for(l0;ln;l){ min(minarray[l])?min:array[l]; max(maxarray[l])?max:array[l]; } for(k0;kn;k) { if(array[k]min){ temparray[0]; array[0]array[k]; array[k]temp;} } for(k0;kn;k) { if(array[k]max){ temparray[n-1]; array[n-1]array[k]; array[k]temp;} } for(j0;jn;j){ printf(%d ,array[j]); } return 0; }原始版1一开始min,max结果一直不对当for(l0;ln;l){ min(minarray[l])?array[0]:array[l]; max(maxarray[l])?array[n-1]:array[l]; }试想当最后一次循环当上一次的结果使maxarray[l-2],但是此次循环array[l-2]array[l-1],则结果应该是array[l-2]按我上面的代码来结果会变成array[n-1],不能又等于初始值的错误要清楚循环过程中max可以改变的初始版2改完上一个我的下面代码其实是这样的并一起遍历并没有考虑到是首先交换首数因为可能先对应到max,则max先交换了for(k0;kn;k) { if(array[k]min){ temparray[0]; array[0]array[k]; array[k]temp;} } else if(array[k]max){ temparray[n-1]; array[n-1]array[k]; array[k]temp;} }以下是借鉴了厉害的uu的答案,我又加以简化了思路可以学习改变数组下标方式思路简单一些效率更高#includestdio.h int main() { int array[10]; int n,j,i,k,temp,l; scanf(%d,n); for(i0;in;i) scanf(%d,array[i]); int minarray[0],maxarray[n-1]; for(l0;ln;l){ min(minarray[l])?min:array[l]; max(maxarray[l])?max:array[l]; } for(k0;kn;k) { if(array[k]min){ temparray[0]; array[0]array[k]; array[k]temp; } } for(k0;kn;k) { if(array[k]max){ temparray[n-1]; array[n-1]array[k]; array[k]temp; } } for(j0;jn;j) printf(%d ,array[j]); return 0; }看清题意此题1.中间数字序列不能改变只是首位数改变2.先改变首数后是尾数所以不能并一起遍历

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号