/*
1. 10000から99999のランダムな自然数を1000コ生成し、小さい順にこれら数値を表示するプログラムを作成せよ。
　　ただし数値は何番目に生成した数値かも表示する。

　　例)1番目に小さい数は475番目の数10049です。
*/
#include <stdlib.h>
#include <stdio.h>

typedef struct{
  int idx;
  int n;
}et;

int et_comp(void* av, void* bv){
  et* a = (et*)av;
  et* b = (et*)bv;
  return a->n - b->n;
}

int rand2(int s, int e){
   return s + (int)(rand()*(e-s+1.0)/(1.0+RAND_MAX));
}

int main(){
  const int sz=1000;
  int i;
  et v[sz];
  for(i=0; i<sz; i++){
     v[i].idx=i;
     v[i].n = rand2(10000,99999);
  }
  qsort(v, sz, sizeof(et), et_comp);
  for(i=0; i<sz; i++){
     printf("%d番目に小さい数は%d番目の数%dです。\n", i+1, v[i].idx+1, v[i].n);
  }
  return 0;
}
