rand () devuelve el mismo número [duplicado]

Esta pregunta ya tiene una respuesta aquí:

srand (): ¿por qué llamarlo solo una vez? 7 respuestas

Estoy haciendo un ejemplo simple en C con rand () pero la función siempre devuelve el mismo número a pesar de que estoy usando srand ().

Este es el código:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int generate(int min, int max)
{
    srand(time(NULL));
    return rand() % (max - min + 1) + min;
}

int main()
{
    int i;
    for (i = 0; i < 10; i++)
    {

        printf("Number random %d = %d\n", i, generate(1, 100));
    }

    return 0;
}

Ejecución:

Número aleatorio 0 = 40 Número aleatorio 1 = 40 Número aleatorio 2 = 40 Número aleatorio 3 = 40 Número aleatorio 4 = 40 Número aleatorio 5 = 40 Número aleatorio 6 = 40 Número aleatorio 7 = 40 Número aleatorio 8 = 40 Número aleatorio 9 = 40

Respuestas a la pregunta(2)

Su respuesta a la pregunta