随机数发生器相关问题

时间:2011-09-09 12:17:49

标签: c++ random

所以这是代码:

if(rand_s(&number) != 0) cout << "Random number generator failed!" << endl;

问题是 - 这是否意味着每次使用此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;
}

3 个答案:

答案 0 :(得分:6)

没有rand_s返回errno_t所以0表示没有错误。还有其他事情表明运行该函数时出错。

可以找到更多信息here

答案 1 :(得分:2)

没有。 here is the link.

rand_s return value: Zero if successful, otherwise, an error code.

您的随机值为:数字

答案 2 :(得分:1)

如果函数执行成功完成,则函数的返回值为0。结果存储在数字中。请注意,您正在通过地址传递。