[code]
用户输入一组数字,请将它以升序的形式打印出来。要求的格式如下:

比如说用户输入的数字是:
13 22 34 44 42 45 67 68 69 33 21 88 99 18 65 21 85 47 96 85 47 14 12 17 19 24
的话,那么结果就是:
12 19 33 47 69
13 21 34 47 85
14 21 42 65 85
17 22 44 67 88
18 24 45 68 96
我的思路是:先将用户输入的这组数字排序,然后在用二维数组来存储它,最后再将它顺时针旋转 180度就可以了。

public class SortDemo { 


 public static void main(String[] args) { 

 int[][] array = init(sort(args)); 

 printArray(array); 

 System.out.println(); 

 int[][] temp = convert(array); 

 printArray(temp); 

 } 


 public static int[][] convert(int[][] array) { 

 int[][] temp = new int[array[0].length][array.length]; 

 for (int i = 0; i < array.length; i++) { 

 for (int j = 0; j < array[i].length; j++) { 

 temp[i][j] = array[j][i]; 

 } 

 } 

 return temp; 

 } 


 private static int[][] init(String[] array) { 

 int k = 0; 

 int[][] arr = new int[array.length / 5][5]; 

 for (int i = 0; i < array.length / 5; i++) { 

 for (int j = 0; j < 5; j++) { 

 arr[i][j] = Integer.parseInt(array[k++]); 

 } 

 } 

 return arr; 

 } 


 public static void printArray(int[][] arr) { 

 for (int i = 0; i < arr.length; i++) { 

 for (int j = 0; j < arr[i].length; j++) { 

 System.out.print(arr[i][j] + " "); 

 } 

 System.out.println(); 

 } 

 } 


 public static String[] sort(String[] array) { 

 for (int i = 0; i < array.length; i++) { 

 for (int j = 0; j < array.length - 1; j++) { 

 int a = Integer.parseInt(array[i]); 

 int b = Integer.parseInt(array[j]); 

 if (a < b) { 

 int temp = a; 

 a = b; 

 b = temp; 

 } 

 array[i] = a + ""; 

 array[j] = b + ""; 

 } 

 } 

 return array; 

 } 


} 


[/code]