Вы можете попробовать что-то вроде этого:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int *create_array(char category, int n);
int
main(int argc, char const *argv[]) {
time_t t;
int *array;
int i, n;
char category;
srand((unsigned)time(&t));
printf("Enter category: ");
if (scanf("%c", &category) != 1) {
printf("Invalid category.\n");
exit(EXIT_FAILURE);
}
printf("Enter n numbers: ");
if (scanf("%d", &n) != 1) {
printf("Invalid n value.\n");
exit(EXIT_FAILURE);
}
array = create_array(category, n);
printf("Your n random numbers between 0-10:\n");
for (i = 0; i < n; i++) {
printf("%d ", array[i]);
}
free(array);
return 0;
}
int
*create_array(char category, int n) {
int *array;
int i, candidate;
array = malloc(n * sizeof(*array));
for (i = 0; i < n; i++) {
candidate = rand() % 10;
array[i] = candidate;
}
return array;
}
Эти ответы могут помочь: [функция srand возвращает те же значения] (http://stackoverflow.com/questions/14494375/srand-function-is-returning -same-values / 14494428 # 14494428) и [Почему rand() возвращает одно и то же значение с помощью srand (time (null)) в этом цикле for?] (http://stackoverflow.com/questions/10644593/why-does -rand обратный-The-же значение, используя-srandtimenull-в-это-для цикла/10644601 # 10644601) – Gomiero