rand()的问题
来源:百度知道 编辑:UC知道 时间:2024/09/13 00:39:52
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int main()
{
printf("%d\n",time(0));
srand(time(0));
printf("%d\n",RAND_MAX);
printf("%d\n",rand());
printf("%f\n",rand()/RAND_MAX);
printf("%f\n",rand()/(RAND_MAX+1));
printf("%f\n",rand()/(RAND_MAX+1)*10);
printf("%f\n",(rand()/(RAND_MAX+1)*10)+1);
system("pause");
}
为什么我后面四行我输出的全都是:0.000000
#include <time.h>
#include <stdio.h>
int main()
{
printf("%d\n",time(0));
srand(time(0));
printf("%d\n",RAND_MAX);
printf("%d\n",rand());
printf("%f\n",rand()/RAND_MAX);
printf("%f\n",rand()/(RAND_MAX+1));
printf("%f\n",rand()/(RAND_MAX+1)*10);
printf("%f\n",(rand()/(RAND_MAX+1)*10)+1);
system("pause");
}
为什么我后面四行我输出的全都是:0.000000
rand()函数用法建议去看教程下
百度一下 你就知道
rand()%x+y
表示的是区间(x,x+y)找个范围的数字
比如rand()%10+10就是产生10到20得随机数字
前面不要忘记加上
srand(time(NULL));
以时间为,,,参数 咯咯~
两个int数相除,除数是最大的,那么rand()产生的数当然要小于最大的啦,就相当于2/1000000,结果当然为零了!