news 2026/9/8 15:24:56

洛谷题--三位数排序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷题--三位数排序

题目描述

给出三个整数 a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。

输入格式

输入三个整数 a,b,c,以空格隔开。

输出格式

输出一行,三个整数,表示从小到大排序后的结果。

初始版本

import java.util.Scanner; public class Main{ public static void main(String[] arg){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); if(a<=b){ if(b<=c){ System.out.println(a+" "+b+" "+c); }else{ if(a<c){ System.out.println(a+" "+c+" "+b); }else{ System.out.println(c+" "+a+" "+b); } } }else{ if(b>c){ System.out.println(c+" "+b+" "+a); }else{ if(a>c){ System.out.println(b+" "+c+" "+a); }else{ System.out.println(b+" "+a+" "+c); } } } } }

存在问题

虽然逻辑正确,但代码繁琐,可读性差

优化方案

方案一(依然只用if,简化版本):

不再写多层嵌套,用临时变量交换,保证 a ≤ b ≤ c,代码短、逻辑直白:

import java.util.Scanner; public class Main{ public static void main(String[] arg){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int t; // 如果a比b大,交换a,b if (a > b) { t = a; a = b; b = t; } // 如果a比c大,交换a,c → a一定是最小值 if (a > c) { t = a; a = c; c = t; } // 最后保证b ≤ c if (b > c) { t = b; b = c; c = t; } System.out.println(a + " " + b + " " + c); } }

✅ 优点:

  1. 没有地狱式嵌套 if,阅读轻松
  2. 改动一个数字也不容易出错
  3. 完全只用 if 判断,符合分支结构作业要求
方案二(数组 + 工具类排序)刷题、竞赛最优解

把 3 个数放进数组,调用 Java自带排序函数(局限是只能从小到大排序),代码最少:

import java.util.Scanner; import java.util.Arrays; public class Main{ public static void main(String[] arg){ Scanner sc = new Scanner(System.in); int[] nums = {sc.nextInt(), sc.nextInt(), sc.nextInt()}; Arrays.sort(nums); System.out.println(nums[0] + " " + nums[1] + " " + nums[2]); } }

✅ 优点:

  • 以后如果不是 3 个数,是 100 个数,几乎不用改代码
  • 逻辑干净,不会写错判断分支
方案三(Math.max/ Math.min 纯计算版)(趣味写法):

不用交换变量,直接算出最小、中间、最大值:

import java.util.Scanner; public class Main{ public static void main(String[] arg){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int min = Math.min(Math.min(a,b),c); int max = Math.max(Math.max(a,b),c); int mid = a + b + c - min - max; System.out.println(min + " " + mid + " " + max); } }

原理:三个数总和减去最大值、最小值,剩下的就是中间值,非常巧妙!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 15:24:35

亲测有效的9款论文写作工具:从文献管理到AI润色全流程提效

写论文这事&#xff0c;很多学弟学妹一上来就问&#xff1a;有没有那种“一键生成全文”的工具&#xff0c;把题目丢进去&#xff0c;参考文献、正文、结论全出来&#xff0c;最好格式还是学校要求的。我实话实说&#xff0c;真没见过哪个正经工具能做到这一步&#xff0c;能做…

作者头像 李华
网站建设 2026/9/8 15:24:13

2026 普通 Python 开发转型 AI Agent:学习清单与面试地图

这两年问"要不要从 Python 转 AI"的人特别多,知乎上、技术群里、朋友圈里到处都是。这个问题本身问歪了。 市场真正缺的,不是"会调用大模型 API 的人",而是能把大模型、工具、数据、业务系统组织成可靠软件的人。前者写两天 Demo 就会了,后者要补一整…

作者头像 李华
网站建设 2026/9/8 15:23:01

零基础写论文✅全程不用求人!思梦航 AI 保姆级全流程教程

很多本科生在校期间并没有系统学习过论文写作&#x1f62d;。不会定选题、搜集文献犯难、降重一头雾水&#xff0c;格式调不好&#xff0c;答辩不知道怎么应答&#xff0c;全程自己瞎摸索&#xff0c;稿子反复被导师打回修改。 其实本科毕业论文不用闭门硬啃。找对合适的辅助工…

作者头像 李华
网站建设 2026/9/8 15:21:03

卷积神经网络实现手写数字识别:PyTorch实战与实验报告指南

简介&#xff1a;面向机器学习初学者和深度学习课程学生的一份完整实验资源&#xff0c;围绕手写数字识别这一经典分类任务&#xff0c;采用PyTorch框架搭建卷积神经网络&#xff08;CNN&#xff09;&#xff0c;并在测试集上达到99%的准确率&#xff0c;能够帮助使用者理解从数…

作者头像 李华
网站建设 2026/9/8 15:20:58

气象统计实习核心技能:数据预处理、趋势分析与显著性检验

简介&#xff1a;这是一份面向气象、地学相关专业学生及Python初学者的气象统计实习资料包&#xff0c;聚焦利用Python完成气候场分析、均方差与距平场计算等典型任务。压缩包共74个文件&#xff0c;以72张PNG结果图为主体&#xff0c;并包含1个Python脚本和1个H500.DAT原始数据…

作者头像 李华