5人の学生を 身長で ソート (配列)
明解C言語 入門編 > 12. 構造体 >
5人の学生を 身長で ソート (配列)
Java
class Lesson089 { static final int NINSU = 5; public static void main(String[] args) { int[] height = {178, 175, 173, 165, 179}; String[] name = {"Sato", "Sanaka", "Takao", "Mike", "Masaki"}; System.out.println("ソート前:"); for (int i = 0; i < NINSU; i++) System.out.printf("%2d:%-8s%4d\n", i + 1, name[i], height[i]); System.out.println(""); sort(height, name, NINSU); System.out.println("ソート後:"); for (int i = 0; i < NINSU; i++) System.out.printf("%2d:%-8s%4d\n", i + 1, name[i], height[i]); } static void sort(int height[], String name[], int n) { int k = n - 1; while (k >= 0) { int j = -1; for (int i = 1; i <= k; i++) { if (height[i - 1] > height[i]) { j = i - 1; int tmp = height[i]; height[i] = height[j]; height[j] = tmp; String s = name[i]; name[i] = name[j]; name[j] = s; } } k = j; } } }
実行結果
L:\>javac lesson_12_089.javaL:\>java Lesson089
ソート前:
1:Sato 178
2:Sanaka 175
3:Takao 173
4:Mike 165
5:Masaki 179ソート後:
1:Mike 165
2:Takao 173
3:Sanaka 175
4:Sato 178
5:Masaki 179