1 int printf();
  2 void *malloc();
  3 void srandom();
  4 int random();
  5 int atoi();
  6 int mod(int x, int y)
  7 {
  8     return x - (x / y) * y;
  9 }
 10 
 11 void swap(int *a, int *b)
 12 {
 13     int tmp;
 14     tmp = *a;
 15     *a = *b;
 16     *b = tmp;
 17 }
 18 
 19 void bubble_sort(int *data, int size)
 20 {
 21     int i;
 22     int j;
 23     i = size - 1;
 24     while (0 < i)
 25     {
 26         j = 0;
 27         while (j < i)
 28         {
 29             if (*(data + (j + 1)) < *(data + j))
 30                 swap(data + j, data + (j + 1));
 31             j = j + 1;
 32         }
 33         i = i - 1;
 34     }
 35 }
 36 
 37 void make_array(int *data, int size, int seed)
 38 {
 39     int i;
 40     i = 0;
 41     srandom(seed);
 42     while (i < size)
 43     {
 44         int j;
 45         j = random();
 46         *(data + i) = mod(j, size);
 47         i = i + 1;
 48     }
 49 }
 50 
 51 int main(int argc, char **argv)
 52 {
 53     int i;
 54     int *p;
 55     int size;
 56     size = atoi(*(argv + 1));
 57     p = malloc(4 * size);
 58     make_array(p, size, 0);
 59     bubble_sort(p, size);
 60     i = 0;
 61     while (i < size)
 62     {
 63         printf("%d\n", *(p + i));
 64         i = i + 1;
 65     }
 66 }
 67