使用rand()函数初始化数组

时间:2013-05-27 15:21:56

标签: c

我想初始化我的输入随机数组以找到输入数组大小的fft。我希望输入数组应该包含复数(例如a + jb),这必须在c中使用rand()来完成。我想这样做:

sint16 min= Some value a;
sint16 max= Some value b;
sint32 array[1536];

uint16 i;
for(i=0; i<1536; i++) {
    r= rand()%(max+min+1)+min;
    array[i]=r;
}

但它没有产生我需要的结果。

1 个答案:

答案 0 :(得分:0)

当您插入max + min + 1max的不同值时,请考虑min的变化情况:

  • max = 10, min = 0 =&gt; 10 + 0 + 1 = 11
  • max = 30, min = 20 =&gt; 30 + 20 + 1 = 51

现在,这两个例子中的实际范围是相同的,对吗?

所以,你的等式应该是:

r = rand() % (max - min + 1);

请注意减法,以计算从minmax的距离(假设为max > min)。