如何在C++中输出两组不同的随机数

How to output two different sets of random numbers in C++?

本文关键字:两组 随机数 C++ 输出      更新时间:2023-10-16

到目前为止,这是我的代码:

#include <iostream>
#include <time.h>
#include <stdio.h>      
#include <stdlib.h>  
using namespace std;
int DealerRoll(int dealerRoll)
{
        srand (time(NULL));
    for (int dealerCount = 1; dealerCount <= 3; dealerCount++)
    {
    dealerRoll = rand()% 6+1;
    cout << dealerRoll << " ";
    }
    return dealerRoll;
}
int PlayerRoll(int playerRoll)
{
        srand (time(NULL));
    for (int playerCount = 1; playerCount <= 3; playerCount++)
    {
    playerRoll = rand()% 6+1;
    cout << playerRoll << " ";
    }
    return playerRoll;
}
int main()
{
    int dealerRoll;
    int playerRoll;
    cout << "Dealer's Roll: " << endl;
    DealerRoll(dealerRoll);
    cout << endl << "Your Roll: " << endl;
    PlayerRoll(playerRoll);
system ("pause");
return 0;
}

我的问题是庄家和玩家的随机(骰子(掷骰子总是相同的。例如,输出将是这样的:

Dealer's Roll: 
1 6 3 
Your Roll: 
1 6 3  

如何让玩家的掷骰子与荷官的掷骰子不同?

Dealer's Roll: 
1 6 3 
Your Roll: 
4 2 5

这是因为您不断重置种子。这需要不直观地完成一次,否则您每次都会返回相同的看似随机的数字。(实际上确实有特定的用例,这就是您想要做的(要只执行一次,请在执行的顶部包含此行一次,而不是在函数的每个连续循环中。

srand (time(NULL));

参考有关该主题的其他更深入的答案。

srand(( — 为什么只调用一次?