使用函数在C中生成大小为n的两个不同的随机数

时间:2018-03-02 17:10:22

标签: c function duplicates

我需要使用函数在C程序中生成两个随机数的n位数。我为变量num1num2获取了相同的值。是因为执行指令的处理器速度更快而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;
 }

0 个答案:

没有答案