H5W3
当前位置:H5W3 > 问答 > 正文

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)得到的种子一样,所以随机数输出一样。

未经允许不得转载:H5W3 » C++用srand()随机产生两组int数,但直接调试和逐过程调试的结果不一样??

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址