C++用srand()随机产生两组int数,但直接调试和逐过程调试的结果不一样??

使用的是C++语言,用srand()随机产生了两组int数,并分别打印。

直接调试(Ctrl+F5)的结果是两个数组数据是一样的;

但逐过程调试(F10)调试的结果又是正确的,两数组数据不一样。

试了很多次,也搞不懂什么情况??求大佬解答

这是随机生成数的代码段

//随机生成一组牌,默认生成数范围是[1-15]

void Deal_Card(int arry[]) {

int length = 10;

srand((int)time(0));

for (int i = 0; i < length; i++)

arry[i] = (rand() % 15) + 1;

}

直接编译结果

C++用srand()随机产生两组int数,但直接调试和逐过程调试的结果不一样??

逐过程调试的结果
C++用srand()随机产生两组int数,但直接调试和逐过程调试的结果不一样??

回答

srand((int)time(0));

这个写在main函数开头的地方,不要写在函数里。

因为直接运行,间隔时间很短,time(0)得到的种子一样,所以随机数输出一样。

以上是 C++用srand()随机产生两组int数,但直接调试和逐过程调试的结果不一样?? 的全部内容, 来源链接: utcz.com/a/58563.html

回到顶部