/* mkdata.c */ #include #include #include "random.h" //void qsort_c(unsigned char *a[], int n); //int strcomp(unsigned char *a, unsigned char *b); //int dbldel_c(unsigned char *a[], int n, int flag); //void inssort_c(unsigned char *a[], int n); void init_irnd(void (*_init)(long s), double (*_rnd)(void), long seed) { _init(seed); _rand = _rnd; } int irnd(int max, int min) { return min + (int)(_rand() * (double)(max - min + 1)); } void init_mkdata(void (*initfunc)(long s), double (*func)(void), long seed) { init_irnd(initfunc, func, seed); } int *mkdata_i(int n, int min, int max) { int i, *data, *p; if(n < 1 || max < min) { fprintf(stderr, "Error : illegal input in mkdata_i()\n"); fprintf(stderr, " n=%d, min=%d, max=%d\n", n, min, max); return NULL; } data = (int *)malloc(n * sizeof(int)); if(data == NULL) { fprintf(stderr, "Error : out of memory in mkdata_i()\n"); return NULL; } for(i = 0, p = data; i < n; i++) *p++ = irnd(max, min); return data; }