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);
}
}
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);
}
}
Move the srand()
call into main()
, before the loop.
In other words, call srand()
once and then call rand()
repeatedly, without any further calls to srand()
:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int value = 0;
int i = 0;
srand(time(NULL));
for (i = 0; i < 5; i++)
{
value = rand();
printf("value is %d\n", value);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With