【问题标题】:Randomize function随机化功能
【发布时间】:2017-02-27 14:33:58
【问题描述】:

我正在尝试创建一个包含 1000 个元素的数组。每个元素的范围应在 0 到 99 之间。 我首先尝试重现这个教学示例,但实际上我无法正确理解:

#include <stdio.h>
#include <stdlib.h>
#define DIM 1000

int myVect[DIM];
int i;
int main(){
randomize();                       /∗ Initialize randomize*/
    for (i =0; i < DIM ; i ++)
        myVect[i] = random(100);
return 0;
}

编译时,我得到了errorwarningnote

warning: implicit declaration of function ‘randomize’    (1)
error: too many arguments to function ‘random’           (2)
/usr/include/stdlib.h:282:17: note: declared here        (3)

我从两个帖子中找到了资源:

不幸的是,由于我缺乏经验,我无法理解我发布的教学示例的含义。

(1) randomize 在哪个库中?我一直没能找到。

(2) Random 不应该有参数。因此,为什么在示例中它带有100,因为它应该确定随机数的范围?

(3) 此注释是否指明random 的声明位置?

感谢您的耐心等待。

【问题讨论】:

  • 这是一个不好的例子。标准库中的 C 中没有这样的函数
  • 感谢@EugeneSh 的确认。那么,这样的例子的原因是什么?它的教学目的是什么?
  • 或许你最好问问它的作者。
  • @EugeneSh。我会尝试。谢谢。

标签: c arrays random


【解决方案1】:

randomize()random() 不是标准 C 库函数。您可以改用srandrand

srand((unsigned)time(NULL));                       
for (i =0; i < DIM ; i ++)
    myVect[i] = rand()%100;

对于time() 函数,您需要包含&lt;time.h&gt; 标头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2017-04-08
    • 1970-01-01
    相关资源
    最近更新 更多