C generador de números aleatorios haciendo el mismo número

¿Cómo obtengo el generador de números aleatorios en c para darme diferentes números cuando se llama a mi función?

#include  #include  #include  int main() { printf("%i",num()); printf("%i",num()); } int num() { int MAX = 100; srand ( time(NULL)); int num = rand() % MAX; return num; } 

No importa cuántas veces llame a la función num, siempre imprime el mismo número. ¿Cómo soluciono esto para que el número sea diferente para cada llamada?

La función de time generalmente devuelve el tiempo en segunda resolución, lo que significa que si llama a time(NULL) dos veces en un segundo, obtendrá el mismo resultado.

Eso significará, por supuesto, que establezca la misma semilla inicial para el generador de números aleatorios, lo que significa que la secuencia será la misma.

Por lo general, solo se llama srand una vez , al principio de la función main .

Movimiento

 srand ( time(NULL)); 

a main() . Necesitas llamar a srand() una vez en main() y seguir llamando a rand()