在搜索CI中生成随机数的教程时发现了这个主题
当我尝试使用rand()没有参数的函数时,我总是得到0.当我尝试使用rand()带参数的函数时,我总是得到值41.每当我尝试使用arc4random()和random()函数时,我都会收到LNK2019错误.
这就是我所做的:
#include <stdlib.h>
int main()
{
int x;
x = rand(6);
printf("%d", x);
}
Run Code Online (Sandbox Code Playgroud)
这段代码总是生成41.我哪里错了?我正在运行Windows XP SP3并使用VS2010命令提示符作为编译器.
这段代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
printf ("First number: %d\n", rand() % 100);
srand ( time(NULL) );
printf ("Random number: %d\n", rand() % 100);
srand ( 1 );
printf ("Again the first number: %d\n", rand() %100);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有以下输出:
First number: 41
Random number: 13
Again the first number: 41
Run Code Online (Sandbox Code Playgroud)
还有以下规则:
具有相同种子的两个不同初始化指示伪随机生成器在两种情况下为随后的rand调用生成相同的连续结果.
我理解这些词,但我只是不理解方法本身.为什么它再次回归41?它是随机的还是必须根据此代码在每种情况下返回相同的结果?
可能重复:使用rand
在C
中生成随机数以生成随机数
我正在尝试生成随机数,但我不断得到数字41.这样一个简单的片段可能会出错?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a = rand();
printf("%d",a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
感谢帮助.