我的随机数生成器一直在使用相同的数字? (C ++)

时间:2018-04-03 06:07:41

标签: c++

我正在尝试制作一个提供5个附加问题的程序。这些数字应该是为5个问题随机生成的。我在第一次循环后继续得到相同的数字。例如,第一个问题是“2 + 2 =”,那么接下来的4次将是同样的问题。

#include <iostream> 
#include <cstdlib>  
#include <ctime> 
using namespace std; 

void additionProblem(int topNumber, int bottomNumber) 
{ 
  int userAnswer; 
  cout << "\n\n\n      " << topNumber << " + " << bottomNumber << " = "; 
  cin >> userAnswer; 
  cin.ignore(1000, 10); 

  int theAnswer = topNumber + bottomNumber; 
  if (theAnswer == userAnswer) 
    cout << "      Correct!" << endl; 
  else 
    cout << "      Very good, but a better answer is " << theAnswer << endl; 

} // additionProblem 


int main() 
{ 
  srand(time(0));
  int number;
  int number2;
  number = rand() % 11; 
  number2 = rand() % 11;

  int i;
  for (i = 0; i != 5; i = i +1)
 {
    additionProblem(number, number2); 
  } 
} // main 

1 个答案:

答案 0 :(得分:2)

您的随机数生成不在您的循环中,因此您只生成一次随机数。

修复:

int main() 
{ 
  srand(time(0));

  for (int i = 0; i != 5; ++i)
  {
    int number = rand() % 11; 
    int number2 = rand() % 11;

    additionProblem(number, number2); 
  } 
}