我需要使用函数在C程序中生成两个随机数的n位数。我为变量num1
和num2
获取了相同的值。是因为执行指令的处理器速度更快而srand()
没有时间点的精确变化,并且两个值相同?我可以添加时间延迟来获得不同的值吗?
我正在使用两个生成函数,一个没有srand()
来获取不同的值。是否存在其他最佳解决方案?
long generate(int n)
{
int a[n];
srand(time(0));
a[0] = rand() % 9 + 1;
for (int i = 1; i<n; i++)
a[i] = rand() % 10;
long num = 0;
for (int i = 0; i < n; i++)
num = 10 * num + a[i];
return num;
}
int main()
{
int num1 = generate(5);
int num2 = generate(5);
printf("%ld %ld",a,b);
return 0;
}