rand()随即数问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 04:09:30
#include"stdio.h"
#include <time.h>
#include <stdlib.h>
void main()
{
int num;
srand(time(NULL));
rand();//就是这个语句,看好了 不是说srand(time(NULL))
/* 上面的rand();这个语句要是不加的话 每次运行的结果还是相同的,加上后就不同了 难道这里是声明吗?*/
num=(double)10*rand()/RAND_MAX;
printf("%d ",num);

}
不加rand();这一句的话 在很长的一段时间内运行的随即数字是相同的。。。。高手来啊~~~~~回答正确的加分
double是针对RAND_NUM 因为不用就会获得的是0和1 再*10
获取1~10之间的整数

只要有srand(time(NULL))就可以了
这样以后的rand()就都不一样了,srand后面的那个rand();可以去掉
你的代码本身就有问题:
num=(double)10*rand()/RAND_MAX;
这句话是把10*rand()/RAND_MAX计算后的值强制转换成double赋给num,但是你定义num的时候是int型的,你打印的时候又使用%d而不是%lf,不知道你究竟想干什么