当前位置: 首页 > 知识库问答 >
问题:

如何用Java输入不同的数字

吕灿
2023-03-14

问题是编写一个对三个整数进行排序的程序。整数从输入对话框中输入,并分别存储在变量num1、num2和num3中。程序对数字进行排序,使num1

实际上我是这样做的,但结果只能用于1、2和3个数字!

当我输入任何不同的数字时,它不会显示我想要的结果!

这是我的代码。。

import javax.swing.JOptionPane;

public class number order {

 public static void main(String[] args) {

 int num1;
 int num2;
 int num3;

    String n = JOptionPane.showInputDialog(null, "input NUM 1 " );
           num1 = Integer.parseInt(n);
    String u = JOptionPane.showInputDialog(null, "input NUM 2 " );
         num2 = Integer.parseInt(u);
    String m = JOptionPane.showInputDialog(null, "input NUM 3 " );
        num3 = Integer.parseInt(m);

    if (num1<=num2&& num2<=num3)
        System.out.println( num1+"<="+ num2+"<="+num3 );
    if(num2<=num1&&num1<=num3)
        System.out.println(num2+"<="+num1+"<="+num3);
    if (num3<=num1&&num1<=num2)
        System.out.println(num3+"<="+num1+"<="+num2);


    // TODO code application logic here
 }
}

共有3个答案

夏侯臻
2023-03-14
int[] all = new int[]();
num1 = Integer.parseInt(n);
all[0] = num1;
num2 = Integer.parseInt(u);
all[1] = num1;
num3 = Integer.parseInt(m);
all[2] = num1;
for(int i=0; i <all.length ;i++){
  if(i!=0 && all[i]< all[i-1]){
     temp = all[i-1];
     all[i-1] = all[i];
     all[i] = temp; 
  }
}

所有都将具有排序数组
或更简单

2步骤1)将所有内容添加到数组中
2)调用数组。排序(数组)

袁宜民
2023-03-14

您尚未检查所有案例:

1 < 2 < 3
1 < 3 < 2
2 < 1 < 3
2 < 3 < 1
3 < 1 < 2
3 < 2 < 1

然而,检查这样的所有情况是没有用的。排序数组会更容易:

int arr[3]={num1,num2,num3}
java.utils.Arrays.sort(arr);
println(arr[0] + "<=" + arr[1] + "<=" + arr[2]);
弘承业
2023-03-14

问题是您只检查了这三个数字的六个可能排列中的三个。另请注意,即使对于这三个,您实际上也没有对数字进行排序,而只是按排序顺序打印它们,即您永远不会重新分配变量num1num2num3

作为检查三个数字的所有可能排列或实现完整排序算法的替代方法,您还可以比较和交换数字对。这样,您可以进行更少的比较,同时仍然能够对三个数字的所有排列进行排序。

  • 如果num1

在这三次互换之后,数字是按顺序排列的。

当然,如果你有三个以上的数字,这就不切实际了,你应该实现一个完整的排序算法(为了练习),或者使用一个内置的,比如数组。排序(对于现实生活)。

 类似资料:
  • 想象一下下面的scanario:我有一个程序,它要求输入一个整数,然后是一个String输入。 根据aobe代码,我没有机会输入姓名。因此,通常我会声明2个扫描仪对象,如下所示: 我的问题是:有必要声明多个扫描仪对象来接受不同类型的输入吗??我这样做是正确的吗? 我已经考虑这个问题很多年了。(SO中的几个问题提到了多扫描仪,但他们的问题只使用了一个扫描仪对象,所以我今天问这个问题。)

  • 问题内容: 我需要测试一些api。例如,我在类中有多个@Test方法来测试我的功能,在初始化之前,我先连接到服务的某些URL并使用它。 如果我的服务位于多个URL(不同的服务器环境),如何为不同的服务URL测试此功能? 流: 通过url初始化连接 运行所有测试 通过另一个URL初始化连接 运行所有测试(相同) … 当只有一位主持人时,我会这样: 问题答案: 有一天我发生了,他们发现了这个很棒的主意

  • 我正在将一个应用程序迁移到SpringCloudStream的新的基于功能的编程模型中,但阻止了事件路由。 我必须路由来自两个不同kafka主题的事件,我不知道如何将functionRouter-in-0绑定到两个不同的目的地。 路由可以通过添加

  • 使用java中的split方法将“Smith,John(111)123-4567”拆分为。我需要去掉逗号和括号。这是我到目前为止所掌握的,但它并没有分裂字符串。

  • 我试图获取代码,以防止用户输入中包含数字。 基本上,我希望代码如下所示: 请求输入 关键是(为什么这不是一个重复的问题):我不能使用循环或其他我们还没有学会的语句。到目前为止,我们所学的唯一真正的语句是if/else/else if语句。这意味着我不能像一些答案所建议的那样使用for循环。虽然它们是很好的答案,而且很有效,但我会因为使用它们而失分。 我已经有了这个,但我不知道如何测试输入是否只包含

  • 在java中,我想创建并打印一个参差不齐的数组,用户首先必须输入行数,然后在每行中,用户必须输入数字列,然后在每列中输入他想要的数字,直到达到他为每行输入的数字,例如 在第一行中,用户输入4,以便键入四个数字 在第二行中,用户输入2,以便键入两个数字 在第三行,用户输入6,这样他可以键入四个数字 之后,它应该打印用户为每行输入的数字以及他输入的任何内容(它应该打印上面的示例) 但出于某种原因使用我