#include #include #define INIT_SIZE 10 #define ADD_SIZE 5 int main(void) { int *a; int size; int temp; int n; int i; int j; int min; int swap_temp; size = INIT_SIZE; a = (int *)malloc(size * sizeof(int)); n = 0; while (1) { printf("[%d] = ", n); scanf("%d", &temp); if (temp == -1) { break; } a[n] = temp; if ((n + 1) == size) { size += ADD_SIZE; a = (int *)realloc(a, size * sizeof(int)); } n++; } for (i = 0; i < n; i++) { printf("[%d] = %d\n", i, a[i]); } for (i = 0; i < n; i++) { min = i; for (j = i + 1; j < n; j++) { if (a[min] > a[j]) { min = j; } } swap_temp = a[min]; a[min] = a[i]; a[i] = swap_temp; } for (i = 0; i < n; i++) { printf("[%d] = %d\n", i, a[i]); } free(a); return 0; }