#include #include #define MAX 1000 void p_a(int n, int array[], int i, int j) { int k; for (k = 0; k < n; k++) { if (k == i) { printf("i->"); } else if (k == j) { printf("j->"); } else { printf(" "); } printf("%2d\n", array[k]); } printf("-----\n"); } void sort(int n, int array[]) { int i, j; int tmp; for (i = 0; i < n -1; i++) { for (j = i + 1; j < n; j++) { if (array[i] > array[j]) { tmp = array[i]; array[i] = array[j]; array[j] = tmp; p_a(n, array, i, j); } } } } int main(int argc, char *argv[]) { int i, n, seed; int ar[MAX]; if (argc <= 2) { printf("引数が足りません\n%s 配列の数 乱数の種\n", argv[0]); return 1; }; n = strtol(argv[1], NULL, 10); if (n > MAX) { n = MAX; } seed = strtol(argv[2], NULL, 10); srandom(seed); for (i = 0; i < n; i++) { ar[i] = random() % 100; } printf("配列に乱数をセットしました。\n"); p_a(n, ar, -1, -1); sort(n, ar); printf("配列をソートしました。\n"); p_a(n, ar, -1, -1); return 0; }