xambo xambo - 12 days ago 5
C Question

rand with seed does not return random if function looped

I wrote this C code below, when I loop, it returns a random number. How can I achieve the 5 different random values if myrand() is executed?

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

int myrand() {
int ue_imsi;
int seed = time(NULL);
srand(seed);
ue_imsi = rand();

return ue_imsi;
}

int main()
{
int value = 0;
int i=0;
for (i=0; i< 5; i++)
{
value =myrand();
printf("value is %d\n", value);
}
}

Answer

Seeding the generator should be done once(for each sequence of random numbers you want to generate of course!):

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

int main()
{
    int seed = time(NULL);
    srand(seed);
    int value = 0;
    int i=0;
    for (i=0; i< 5; i++)
    {
        value =rand();
        printf("value is %d\n", value);
    }
}