这个问题是今晚上写代码的时候突然发现的,查了一下资料还真发现没那么简单,在此留下自己的解决方法以及其他网上的解决方案:
(int)((double)(rand()/(double)(RAND_MAX/2))
这里,用强制类型转换将rand()和RAND_MAX的值转换为double型(由于RAND_MAX/2为浮点型数据)
然后将整体转换为int,这样当rand()生成大于RAND_MAX/2的数时就得到1,反之得到0
其他方法:
printf("%lf\n",(double)rand()/RAND_MAX);
float b=rand()/(RAND_MAX+1.0);
int
main(
void
)
{
srand
((unsigned)
time
(0));
double
t =
rand
()%1000000/1000000.0;
printf
(
"%lf\n"
,t);
system
(
"pause"
);
return
0;
}