如果验证为 1,如何生成新的随机数?
我可以再放一个“生成数字行”吗: cardDrawn=(1+(rand()%52));
#include <iostream>;
#include <cstdlib>;
#include <ctime>;
#include <cmath>;
using namespace std;
int main(){
int deck[52];
bool validate[52]={0};
int hand[5];
int cardDrawn;
int count=0;
int j=0;
bool repeat=0;
string cardNames[52]= {"Ace of Clubs","2 of Clubs","3 of Clubs","4 of Clubs","5 of Clubs","6 of Clubs","7 of Clubs","8 of Clubs","9 of Clubs","10 of Clubs","Jack of Clubs","Queen of Clubs","King of Clubs",//CLUBS
"Ace of Spades","2 of Spades","3 of Spades","4 of Spades","5 of Spades","6 of Spades","7 of Spades","8 of Spades","9 of Spades","10 of Spades","Jack of Spades","Queen of Spades","King of Spades",//SPADES
"Ace of Hearts","2 of Hearts","3 of Hearts","4 of Hearts","5 of Hearts","6 of Hearts","7 of Hearts","8 of Hearts","9 of Hearts","10 of Hearts","Jack of Hearts","Queen of Hearts","King of Hearts",//HEARTS
"Ace of Diamonds","2 of Diamonds","3 of Diamonds","4 of Diamonds","5 of Diamonds","6 of Diamonds","7 of Diamonds","8 of Diamonds","9 of Diamonds","10 of Diamonds","Jack of Diamonds","Queen of Diamonds","King of Diamonds"//DIAMONDS
};//array to hold card abbreviations.
srand(time(0));
for (int i=0; i<52; i++){ // fills arrays with 1-52
deck[i]=i+1;};
cardDrawn=(1+(rand()%52)); //generates first card.
hand[0]=cardDrawn;
validate[cardDrawn]=1;
//cout << "Card 1: " << hand[0];
do{
cardDrawn=(1+(rand()%52));
if (validate[cardDrawn]==1)
{
//count doesn't update! :D
}
else
{
hand[count]=cardDrawn;
count++;
}
}while(count<4);
cout << "Card 1: " << cardNames[hand[0]];
cout << "\ncard 2: " << cardNames[hand[1]];
cout << "\ncard 3: " << cardNames[hand[2]];
cout << "\ncard 4: " << cardNames[hand[3]];
cout << "\ncard 5: " << cardNames[hand[4]];
return 0;
}