当前位置: 代码迷 >> Eclipse >> 求大神用Java写一下 多谢啦
  详细解决方案

求大神用Java写一下 多谢啦

热度:63   发布时间:2016-04-23 00:17:26.0
求大神用Java写一下 谢谢啦

------解决思路----------------------
package day03;

import java.util.Arrays;
import java.util.Scanner;

public class Test {
public static void main(String[] args) {

String str = null;
int[][] result = { {} };

int count = 0;
str = new Scanner(System.in).nextLine();
do {

String array[] = str.split("\\s");
int[] a = new int[array.length - 1];
for (int i = 0; i < a.length; i++) {
a[i] = Integer.parseInt(array[i + 1]);
}
int min = a[a.length - 1];
int index = a.length - 1;
for (int i = a.length - 1; i >= 1; i--) {
if (a[i] < min) {
min = a[i];
index = i;
}
}
a[0] = a[0] + a[index];
a[index] = a[0] - a[index];
a[0] = a[0] - a[index];
result[count] = Arrays.copyOf(a, a.length);
result = Arrays.copyOf(result, result.length + 1);
count++;
str = new Scanner(System.in).nextLine();
} while (!"0".equals(str));
for (int i = 0; i < result.length - 1; i++) {
for (int j = 0; j < result[i].length; j++) {
System.out.print(result[i][j] + " ");
}
System.out.println();
}
}
}

------解决思路----------------------
public static void main(String[] args) {
String str = args[0];
if(Integer.parseInt(str) == 0) {
return;
}

int count = Integer.parseInt(str);
int[] number = new int[count];
for(int i = 0; i<count; i++) {
number[i] = Integer.parseInt(args[i+1]);
}
int temp = 0;//用于记录最小元素的下标值
for(int j = 1; j<count; j++) {
if(number[j] < number[temp]) {
temp = j;
}
}
if(temp != 0) {
//交换两个数值
int temp2 = number[temp];
number[temp] = number[0];
number[0] = temp2;
}
for(int i = 0; i<count; i++) {
System.out.println(number[i] + " ");
}
return;
}


比较直接的方法,最直观的思路,先获取长度,再获取最小值,再交换,再输出,程序的健壮性不是很好,欠缺一些健壮性检查,楼主参考一下吧
  相关解决方案