#include <stdio.h>
#include <stdlib.h>
#define generate_num(min, max) ((rand() % (max - min)) + min)
enum {
MINIMUM, MAXIMUM, VALUES
};
const char *msgs[3] = {
"Enter the minimum value.",
"Enter the maximum value.",
"Enter the number of random values to generate."
};
int *numbers;
int get_max(int *, int, int);
int get_min(int *, int, int);
int main()
{
char buffer[512];
int range[3];
int i;
srand(time(NULL));
do {
for(i = 0; i < 3; ++i) {
puts(msgs[i]);
fgets(buffer, sizeof buffer, stdin);
sscanf(buffer, "%d", &range[i]);
}
} while(range[MINIMUM] >= range[MAXIMUM]);
numbers = malloc(sizeof (int) * range[VALUES]);
for(i = 0; i < range[VALUES]; ++i) {
*(numbers + i) = generate_num(range[MINIMUM], range[MAXIMUM]);
printf("%d: %d\n", i +
1, *
(numbers + i
));
}
printf("The maximum value is: %d\nThe minimum value is: %d\n",
get_max(numbers, range[MINIMUM], range[VALUES]),
get_min(numbers, range[MAXIMUM], range[VALUES]));
free(numbers);
return 0;
}
int get_max(int *num, int minimum_value, int size)
{
int val = minimum_value;
int i;
for(i = 0; i < size; ++i) {
if(val < *(num + i))
val = *(num + i);
}
return val;
}
int get_min(int *num, int maximum_value, int size)
{
int val = maximum_value;
int i;
for(i = 0; i < size; ++i) {
if(val > *(num + i))
val = *(num + i);
}
return val;
}