Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
void fillchar(char *a, long len);
void fillshort(short *a, long len);
void fillong(long *a, long len);
void fillfloat(float *a, long len);
void filldouble(double *a, long len);
void printchar(char *a, long s, long e);
void printshort(short *a, long s, long e);
void printlong(long *a, long s, long e);
void printfloat(float *a, long s, long e);
void printdouble(double *a, long s, long e);
void fill_array(void *arr, long len, void (*fill)());
void display_array(void *arr, long start, long end, void (*d)());
void wait(long sec);
unsigned init;
main()
{
char c[1000];
short s[100];
long l[100];
float f[100];
double d[100];
int number, i;
long index[2];
while (!kbhit())
{
srand(++init);
if(init == 65535)
init = 1;
number = rand() % 5 + 1;
do
{
for (i = 0; i < 2; i++)
index[i] = (number != 1) ? rand()%100 : rand()%1000;
} while (index[0] >= index[1]);
wait(3);
printf("\033[2J\n");
printf("\033[%d;%dm", 31+number, 42+number);
switch(number)
{
case 1: printf("C H A R :\n\n");
fill_array(c, 1000, fillchar);
display_array(c, index[0], index[1], printchar);
break;
case 2:
printf("S H O R T :\n\n");
fill_array(s, 100, fillshort);
display_array(s, index[0], index[1], printshort);
break;
case 3:
printf("L O N G :\n\n");
fill_array(l, 100, fillong);
display_array(l, index[0], index[1] ,printlong);
break;
case 4:
printf("F L O A T :\n\n");
fill_array(f, 100, fillfloat);
display_array(d, index[0], index[1], printfloat);
break;
case 5:
printf("D O U B L E :\n\n");
fill_array(d, 100, filldouble);
display_array(d, index[0], index[1], printdouble);
}
}
printf("\033[0m");
}
void fill_array(void *arr, long len, void (*fill)(void*, long))
{
(*fill)(arr, len);
}
void fillchar(char *a, long len)
{
long i;
srand(++init);
for (i = 0; i < len; i++)
{
a[i] = (rand() % 96) + 32;
}
}
void fillshort(short *a, long len)
{
long i;
srand(++init);
for (i = 0; i < len; i++)
a[i] = rand();
}
void fillong(long *a, long len)
{
long i;
srand(++init);
for (i = 0; i < len; i++)
a[i] = (long) rand() * rand();
}
void fillfloat(float *a, long len)
{
long i;
srand(++init);
for (i = 0; i < len; i++)
a[i] = (float) rand() / 32767;
}
void filldouble(double *a, long len)
{
long i;
srand(++init);
for (i = 0; i < len; i++)
a[i] = (double) rand() / 32767;
}
void display_array(void *arr, long start, long end, void (*f)(void*, long, long))
{
(*f)(arr,start, end);
}
void printchar(char *a, long s, long e)
{
long i;
for (i = s; i <= e; i++)
printf("%c", a[i]);
}
void printshort(short *a, long s, long e)
{
long i;
for (i = s; i <= e; i++)
{
printf("%5hd ", a[i]);
if (((i+1)%10) == 0)
printf("\n");
}
}
void printlong(long *a, long s, long e)
{
long i;
for (i = s; i <= e; i++)
{
printf("%10ld ", a[i]);
if (((i+1)%6) == 0)
printf("\n");
}
}
void printfloat(float *a, long s, long e)
{
long i;
for (i = s; i <= e; i++)
{
printf("%f ", a[i]);
if (((i+1)%6) == 0)
printf("\n");
}
}
void printdouble(double *a, long s, long e)
{
long i;
for (i = s; i <= e; i++)
printf("%.12f ", a[i]);
}
void wait(long sec)
{
long start, current;
time(&start);
do
{
time(¤t);
} while ((current - start) < sec);
}
so what did i do wrong? i put the peice of prog in red where i get my errors