我想要做的是拥有一个单词数组,然后从数组中为一个字符串分配一个随机字,但没有字符串可以有相同的单词。我尝试了这个,但是当它运行时,它只会执行do-while然后进入下一次do-while留下重复。那么我所写的内容的哪一部分是不正确的,我该怎么做才能解决它?
string1 = words[rand()%110];
do{
string2 = words[rand()%110];
}while (string == string1);
do{
string3 = words[rand()%110];
}while (string3 == string1 && string3 == string2);
答案 0 :(得分:3)
第一个循环似乎很好。也许您需要在第二个循环中编写||
而不是&&
。
PS:在第一个循环中,它是while (string2 == string1);
而不是while (string == string1);
??
答案 1 :(得分:0)
std::string getWord(std::vector<std::string> & words, size_t & unusedCount)
{
size_t index = rand() % unusedCount;
--unusedCount;
std::swap(words[index], words[unusedCount]);
return words[unusedCount];
}
std::vector<std::string> words;
// fill in words here
// ...
size_t wordsCount = words.size();
std::string string1 = getWord(word, wordsCount);
std::string string2 = getWord(word, wordsCount);
std::string string3 = getWord(word, wordsCount);