下面程序从命令行参数中读入数值并从小到大排序!
可是运算的结果怎么也不对,大家帮忙试验下,多谢!public class Test{
public static void main(String[] args){
int[] num = new int[args.length];
for(int i=0; i<args.length; i++)
num[i]=Integer.parseInt(args[i]);
for(int i=0; i<num.length; i++)
for(int j=i+1; j<num.length; j++)
if(num[i]>num[j]) {
int temp = num[i];
num[j] = temp;
num[i] = num[j];
}
for(int i=0;i<num.length;i++) {
System.out.print(num[i]+" ");
}
}
}
例如输入java Test 4 5 1 3 4
结果: 4 5 5 5 5
可是运算的结果怎么也不对,大家帮忙试验下,多谢!public class Test{
public static void main(String[] args){
int[] num = new int[args.length];
for(int i=0; i<args.length; i++)
num[i]=Integer.parseInt(args[i]);
for(int i=0; i<num.length; i++)
for(int j=i+1; j<num.length; j++)
if(num[i]>num[j]) {
int temp = num[i];
num[j] = temp;
num[i] = num[j];
}
for(int i=0;i<num.length;i++) {
System.out.print(num[i]+" ");
}
}
}
例如输入java Test 4 5 1 3 4
结果: 4 5 5 5 5
for(int j=i+1; j <num.length; j++)
if(num[i]>num[j]) {
int temp = num[i];
num[i] = num[j];
num[j] = temp;
}
int temp = num[i];
num[j] = temp;
num[i] = num[j];
改为: if(num[j+1]>num[j]) {
int temp = num[j];
num[j] = num[j+1];
num[j+1] = temp; 从大到小排序。
public static void main(String[] args){
int[] num = new int[args.length];
for(int i=0; i <args.length; i++)
num[i]=Integer.parseInt(args[i]);
for(int i=0; i <num.length; i++)
for(int j=i+1; j <num.length; j++)
if(num[j+1]>num[j]) {
int temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
for(int i=0;i <num.length;i++) {
System.out.print(num[i]+" ");
}
}
}
运行试试看,应该没问题的