首页 > 解决方案 > 为什么 rand 没有在我的代码中产生随机数?

问题描述

我想随机化变量 a 和 b,以 a、b 的格式输出随机数 1 到 4。但是,当我运行以下代码时,无论我运行多少次,输出总是相同的。例如,输出始终为:4,3(相同的输出显示 10 次。)

我在这里做错了什么?有人可以指出我正确的方向吗?谢谢!

#include <iostream>

using namespace std;

int main() 
{
    int x;
    int a, b;
    a= rand() % 4 + 1; 
    b= rand() % 4 + 1;
    x = 0;

    while (x < 10) {
    x++;

    cout << a << "," << b << endl;

    }
    return 0;
}

标签: c++randomwhile-looprandom-seed

解决方案


我在这里做错了什么?有人可以指出我正确的方向吗?谢谢!

您正在设置一次ab因此它们具有相同的值。要解决此问题,请将它们设置在循环内,以在每次迭代时赋予它们一个新值:

while (x < 10) {
    x++;
    a = rand() % 4 + 1;
    b = rand() % 4 + 1;

    cout << a << "," << b << endl;
}

如果您不希望每次都使用相同的值,则可以调用

srand(time(0)); // before the loop

推荐阅读