脚底儿 2023-11-05 14:23 采纳率: 100%
浏览 17
已结题

将输入的内容从小到大的顺序重新排序

题目是这样:从键盘输入三个整数,分别赋给整形变量a、b、c,然后将输入的整数按照从小到大的顺序放回变量a、b、c中,并输出三个变量的值。

img

输出的结果总是b<a<c,但第一个条件语句就是如果a>b就调换位置,这个怎么解决
下面是代码

import java.util.Scanner;
public class paixu {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入a:");
        int a = input.nextInt();
        System.out.print("请输入b:");
        int b = input.nextInt();
        System.out.print("请输入c:");
        int c = input.nextInt();
        if (a>b){
            a = a+b;        //如果a>b那么a和b调换位置;这时a<b
            b = a-b;        //若a<b则不操作
            a = a-b;
        }
        if (b>c){
            b = b+c;        //如果b>c那么b和c调换位置;这时b<c
            c = b-c;        //若b<c则不操作
            b = b-c;
        }
        System.out.println("排序后的的数字a是:"+a+ "b是:"+b+ "c是:"+c );
    }
}


  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-05 16:51
    关注

    【以下回答由 GPT 生成】

    问题的需求是将输入的三个整数按照从小到大的顺序重新排序,并输出。

    你的代码已经实现了这个需求,但是可以做一些优化和改进。 1. 可以使用更加直观的方法来交换变量的值,例如使用一个临时变量来交换。 2. 可以将输入和排序逻辑封装为一个函数,提高代码的可读性和重用性。 3. 可以考虑添加错误处理逻辑,例如输入不是整数的情况。

    下面是优化后的代码:

    import java.util.Scanner;
    
    public class SortNumbers {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("请输入a:");
            int a = input.nextInt();
            System.out.print("请输入b:");
            int b = input.nextInt();
            System.out.print("请输入c:");
            int c = input.nextInt();
    
            sortNumbers(a, b, c); // 调用排序函数
    
            System.out.println("排序后的数字a是:" + a + " b是:" + b + " c是:" + c);
        }
    
        // 排序函数
        public static void sortNumbers(int a, int b, int c) {
            if (a > b) {
                int temp = a;
                a = b;
                b = temp;
            }
            if (b > c) {
                int temp = b;
                b = c;
                c = temp;
            }
            if (a > b) {
                int temp = a;
                a = b;
                b = temp;
            }
        }
    }
    

    这样,代码更加清晰易懂,同时可以提高代码的可读性和可维护性。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月5日

悬赏问题

  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥15 怎么做商品窗体,完完全全不会
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 铜与钢双金属板叠加在一起每种材料300mm长,18mm宽,4mm厚一端固定并加热至80℃,当加热端温度保持不变时另一端的稳态温度。ansys
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥15 ANSYS分析简单钎焊问题