1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define generate_num(min, max) ((rand() % (max - min)) + min)
  5.  
  6. enum {
  7. MINIMUM, MAXIMUM, VALUES
  8. };
  9.  
  10. const char *msgs[3] = {
  11. "Enter the minimum value.",
  12. "Enter the maximum value.",
  13. "Enter the number of random values to generate."
  14. };
  15.  
  16. int *numbers;
  17.  
  18. int get_max(int *, int, int);
  19. int get_min(int *, int, int);
  20.  
  21. int main()
  22. {
  23. char buffer[512];
  24. int range[3];
  25. int i;
  26.  
  27. srand(time(NULL));
  28. do {
  29. for(i = 0; i < 3; ++i) {
  30. puts(msgs[i]);
  31. fgets(buffer, sizeof buffer, stdin);
  32. sscanf(buffer, "%d", &range[i]);
  33. }
  34. } while(range[MINIMUM] >= range[MAXIMUM]);
  35. numbers = malloc(sizeof (int) * range[VALUES]);
  36. for(i = 0; i < range[VALUES]; ++i) {
  37. *(numbers + i) = generate_num(range[MINIMUM], range[MAXIMUM]);
  38. printf("%d: %d\n", i + 1, *(numbers + i));
  39. }
  40. printf("The maximum value is: %d\nThe minimum value is: %d\n",
  41. get_max(numbers, range[MINIMUM], range[VALUES]),
  42. get_min(numbers, range[MAXIMUM], range[VALUES]));
  43. free(numbers);
  44. return 0;
  45. }
  46.  
  47. int get_max(int *num, int minimum_value, int size)
  48. {
  49. int val = minimum_value;
  50. int i;
  51.  
  52. for(i = 0; i < size; ++i) {
  53. if(val < *(num + i))
  54. val = *(num + i);
  55. }
  56. return val;
  57. }
  58.  
  59. int get_min(int *num, int maximum_value, int size)
  60. {
  61. int val = maximum_value;
  62. int i;
  63.  
  64. for(i = 0; i < size; ++i) {
  65. if(val > *(num + i))
  66. val = *(num + i);
  67. }
  68. return val;
  69. }
  70.