#include<stdio.h>
#include<time.h>
main()
{
int x;
srand(1000);
x=rand(1,10);
printf("%d",x);
}
为什么出来的数字不是1-10之间的数字?
rand()函数语法不是int rand(int min,int max)吗?
而且每次还一样?
另外srand()函数里的种子对rand()有什么影响?
srand((int)time(NULL));是取得系统时间
我想自定义种子应该没错吧!
rand()%10+1;我只得知道可以,为什么我这样写不对?
你那个是matlab里面的写法吧 c语言没那么写的
还有因为你每次中的种子都是一样的所以产生的结果都一样 你要产生不同结果的话就要设置不同种子
rand(1,10);
这样写,系统不报错~
但是就是数字不对
那取系统时间和自定义时间有区别吗?
系统时间的话每次时间都是不一样的呀 所以可以产生不同的伪随机素 你自定义一个
srand(1000);产生的永远是同一个随机数
但是这语句总是执行一次,即使每次都要重载,那效果也应该一样的~
追答重载以后你的1000没有变啊 自变量没有变 函数结果会变?
随机数是通过一个特定的数学运算得到的
哦~这样。
有什么办法可以实现随机生成1-35的数字,而没有重复吗?
不用筛选的语句
不可能吧 要筛选 学了这么多年 编写了这么多程序 还没看到过 应该都要加筛选条件的
本回答被提问者采纳rand()函数语法不是int rand(int min,int max)吗?
随机产生min-max之间的数字
要产生1-10之间的随机数可以这样写:x=rand()%10+1;
srand里面的种子就是产生随机数的一个引子...
为了在每次产生不同的随机数 应该把实时时间作为种子。
srand((int)time(NULL));是取得系统时间
我想自定义种子应该没错吧!
rand()%10+1;我只得知道可以,为什么我这样写不对?
自定义种子也可以,但每次产生的随机数还是会一样!在VC6中rand函数没有重载,只有这一个使用形式
追问我用的codeblock
那为什么rand(1,10);
不对呢?
那就不知道了...我没有用过codeblock
追问VC貌似也可以~
int rand(int min,int max)有这个用法的
没有,我查过MSDN
追问~~~
我知道上查的~
那是标准的原因?
百度知道上查的也要分清是属于那个编译器的标准,而MSDN就是VC编译器的标准文档
追问那有什么办法可以随机生成1-35的数字7个,要无重复的
不写判断重复的语句可以实现吗?