You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅用if条件实现5个输入数字升序排序的技术求助

仅用if条件实现5个数字的升序排序

你用嵌套if实现3个数排序的思路没问题,但5个数如果直接枚举所有排列(共120种)会非常繁琐。换个更高效的思路:通过多轮两两比较交换,用if逐步把最小的数移到对应位置,全程只用if条件就能完成排序。

以下是实现代码:

# 输入5个数字
a = float(input("Enter a: "))
b = float(input("Enter b: "))
c = float(input("Enter c: "))
d = float(input("Enter d: "))
e = float(input("Enter e: "))

# 确保a是所有数里最小的
if a > b:
    a, b = b, a
if a > c:
    a, c = c, a
if a > d:
    a, d = d, a
if a > e:
    a, e = e, a

# 确保b是剩余四个数里最小的
if b > c:
    b, c = c, b
if b > d:
    b, d = d, b
if b > e:
    b, e = e, b

# 确保c是剩余三个数里最小的
if c > d:
    c, d = d, c
if c > e:
    c, e = e, c

# 确保d是剩余两个数里最小的
if d > e:
    d, e = e, d

# 输出升序结果
print(f"{a} < {b} < {c} < {d} < {e}")

逻辑说明

  1. 第一轮通过和b、c、d、e逐一比较交换,把最小的数放到a的位置;
  2. 第二轮在剩余的b、c、d、e里重复操作,把次小的数放到b的位置;
  3. 以此类推,每一轮都用if判断并交换,最终所有数就按升序排列好了。

这种方式比枚举所有排列简洁得多,而且完全符合“仅用if条件”的要求。

内容的提问来源于stack exchange,提问作者Harsh Panchal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:54:25