c++0~9随机数

来源:百度知道 编辑:UC知道 时间:2024/06/20 01:59:11
#include<iostream>
#include<conio.h>
#include<cstdlib>
#include<ctime>
using namespace std;

int main(){

for(int n=1;n<=8;n++){
double i=0;
srand((unsigned int)time(NULL));
i=static_cast<double>(rand())/(RAND_MAX+1)*10;
i=static_cast<int>(i);
cout<<i;
}

getch();
return 0;
}
请问 1\为什么这样后出的8位数是一样的
2\过几秒钟后为什么数值不变,十几分钟之后才变

这是因为你的循环每次都用了srand函数设置随机数发生器的初始化的开始值,把它移到循环前就行了

#include<iostream>
#include<conio.h>
#include<cstdlib>
#include<ctime>
using namespace std;

int main(){
srand((unsigned int)time(NULL));

for(int n=1;n<=8;n++){
double i=0;

i=static_cast<double>(rand())/(RAND_MAX+1)*10;
i=static_cast<int>(i);
cout<<i;
}

getch();
return 0;
}

你的种子位置不对,而且还是伪随机数。。。。