Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Java输入不同的数字_Java - Fatal编程技术网

如何用Java输入不同的数字

如何用Java输入不同的数字,java,Java,问题是要编写一个对三个整数进行排序的程序。整数从输入对话框中输入,并分别存储在变量num1、num2和num3中。程序对数字进行排序,以便num1您没有检查所有情况: 1 < 2 < 3 1 < 3 < 2 2 < 1 < 3 2 < 3 < 1 3 < 1 < 2 3 < 2 < 1 1num3,则交换num2和num3 如果num1>num2,则再次交换num1和num2 在这三次互换之后,数字是按顺序排列的 当然,

问题是要编写一个对三个整数进行排序的程序。整数从输入对话框中输入,并分别存储在变量num1、num2和num3中。程序对数字进行排序,以便num1您没有检查所有情况:

1 < 2 < 3
1 < 3 < 2
2 < 1 < 3
2 < 3 < 1
3 < 1 < 2
3 < 2 < 1
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]);
int-arr[3]={num1,num2,num3}
java.utils.Arrays.sort(arr);
println(arr[0]+“
int[]all=newint[]);
num1=整数.parseInt(n);
全部[0]=num1;
num2=整数.parseInt(u);
全部[1]=num1;
num3=整数.parseInt(m);
所有[2]=num1;

对于(int i=0;i而言,问题在于您只检查这三个数字的六种可能排列中的三种。还要注意的是,即使对于这三种,您实际上也没有对数字进行排序,而只是按排序顺序打印它们,即,您永远不会重新分配变量
num1
num2
num3

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

  • 如果num1>num2,则交换num1和num2
  • 如果num2>num3,则交换num2和num3
  • 如果num1>num2,则再次交换num1和num2
在这三次互换之后,数字是按顺序排列的

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

怎么样

int min = min(min(num1,num2),num3);
int max = max(max(num1,num2),num3);
int mid = num1 + num2 + num3 - min - max;
System.out.println(min+"<="+mid+"<="+max);
int min=min(min(num1,num2,num3);
int max=max(max(num1,num2,num3);
int mid=num1+num2+num3-最小值-最大值;
System.out.println(min+“
if(num1num1>num3”);}
else{if(num2num2>num1”);else System.out.println(“num1>num2>num3”);}
按降序排序


希望有帮助。

你能重新表述你的问题吗?你的意思是程序只能接受3个数字作为输入(而不是,例如,4个或5个)?还是说“排序”只适用于某些输入,而不适用于其他输入?我的意思是排序只适用于某些输入(1、2和3)…为了说明这一点,如果你输入,比如说,6,2和9,排序不起作用?是的,准确地说,当我输入1,2和3时它就起作用了..1你能再检查一下吗?你的代码中没有任何东西会限制输入整数1,2,3。事实上,6,2,9(按这个顺序)排序应该很好。我的代码写得好吗?我只需要使用JOptionPane方法!非常感谢。。
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; 
  }
}
int min = min(min(num1,num2),num3);
int max = max(max(num1,num2),num3);
int mid = num1 + num2 + num3 - min - max;
System.out.println(min+"<="+mid+"<="+max);
if(num1 < num2){ if(num3 < num1) System.out.println("num2 > num1 > num3");}
else{ if(num2 < num3) System.out.println("num3 > num2 > num1"); else System.out.println("num1 > num2 > num3");}