随机数发生器相关问题

Vis*_*iva 0 c++ random

所以这是代码:

if(rand_s(&number) != 0) cout << "Random number generator failed!" << endl;
Run Code Online (Sandbox Code Playgroud)

问题是 - 是否意味着每次使用此rand_s(&number)表达式生成的随机数大于零时,程序都会输出失败消息?如果是这样,我为什么要这样的东西呢?

// complete code

unsigned int number = 0;

cout << "Random values are:" << endl;
double max = 1000000.0;

for(int i = 0 ; i<100 ; i++)
{
   if(rand_s(&number) != 0)
   cout << "Random number generator failed!" << endl;

   number = static_cast<unsigned int>(static_cast<double>(number)/UINT_MAX*max)+1;

   // output
   cout << setw(12) << number;
   if((i+1) % 5 == 0) cout << endl;
}
Run Code Online (Sandbox Code Playgroud)

dav*_*ave 6

没有rand_s返回一个errno_t0,表示没有错误.还有其他任何事情表明运行该函数时出错.

更多信息可以在这里找到