替代cstdlib的rand()

时间:2016-12-21 22:22:58

标签: c++ random

是否有替代rand()?因为rand()(至少对我而言)是非常糟糕的。所以如果你知道c ++中rand()的替代品,请告诉我。因为每次我运行这个简单的代码:

代码:

#include <iostream>
#include <cstdlib>

using namespace std;

void Gla()
{
  int L;
  L = rand();
  while(1)
  {
      cout<<L<<endl;
  }
}


int main()
{
    Gla();
    return 0;
}

它不断输出41,我不知道它为什么会这样做。

1 个答案:

答案 0 :(得分:2)

这与rand()无关。问题是代码为L赋值,然后进入循环,多次写L的{​​相同]值。请记住,一旦为变量赋值,它就会保留该值,直到您更改它为止。所以从

改变你的功能
void Gla()
{
  int L;
  L = rand();
  while(1)
  {
      cout<<L<<endl;
  }
}

void Gla()
{
  int L;
  while(1)
  {
      L = rand();
      cout<<L<<endl;
  }
}

这样,每次循环都会更新L的值。