Если вы не генерируете свои числа слишком быстро (* 1) и ваш верхний предел достаточно низок (* 2), а ваше "время дня" включает наносекунды, просто используйте эти наносекунды.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int nanorand(void) {
struct timespec p[1];
clock_gettime(CLOCK_MONOTONIC, p);
return p->tv_nsec % 1000;
}
int main(void) {
int r, x;
for (;;) {
r = nanorand();
do {
printf("please type %d (< 50 quits): ", r);
fflush(stdout);
if (scanf("%d", &x) != 1) exit(EXIT_FAILURE);
} while (x != r);
if (r < 50) break;
}
puts("");
return 0;
}
И пробный прогон ...
please type 769 (< 50 quits): 769
please type 185 (< 50 quits): 185
please type 44 (< 50 quits): 44
(* 1), если вы используете их в интерактивном режиме, по одному
(* 2), если вы хотите, чтобы числа до 1000