JAVA程序.输入3个数字,有IF语句,从小到大排序

来源:百度知道 编辑:UC知道 时间:2024/05/26 07:49:12
这是我写的代码
import javax.swing.JOptionPane;
public class Arrange{
public static void main (String args[]){
String str;
int x,y,z;
str=JOptionPane.showInputDialog("请输入第一个数");
x=Integer.parseInt (str);
str=JOptionPane.showInputDialog("请输入第二个数");
y=Integer.parseInt (str);
str=JOptionPane.showInputDialog("请输入第三个数");
z=Integer.parseInt (str);
if(x>y)
if(x>z)
if(y>z)
x=z;
y=y;
z=x;
else
x=y;
y=z;
z=x;
else
if(y<z)
x=y;
y=x;
z=z;
else
if(x>z)
if(y>z)
x=z;
y=x;
z=y;
else
if(y>z)
x=x;
y=z;
z=y;
else
x=x;
y=y;
z=z;
System.out.println("从小到大排列="+x+" "+y+" "+z);

}
}

我按你的方法改:

import javax.swing.JOptionPane;

public class Arrange{
public static void main (String args[]){
String str;
int x,y,z;
int temp;
str=JOptionPane.showInputDialog("请输入第一个数");
x=Integer.parseInt (str);
str=JOptionPane.showInputDialog("请输入第二个数");
y=Integer.parseInt (str);
str=JOptionPane.showInputDialog("请输入第三个数");
z=Integer.parseInt (str);

if(x>y) {
temp = y;
y = x;
x = temp;
}

if(y>z){
temp = y;
y = z;
z = temp;
}
if(x>y){
temp = y;
y = x;
x = temp;
}

System.out.println("从小到大排列="+x+" "+y+" "+z);

}
}

你的问题出在数字交换上
比如
x=z;//x=z
y=y;//y=y
z=x;//z=x 这时候x=z,那么就是z=z
这样x的值就被湮灭了

不用中间变量的话你x,y,z的值都不对,建议增加a,b,c变量用来储存要输出的数

两个数的交换是这样的,temp=a,b=a,a=temp或者a=a+b