我試圖從1到5生成並打印出5個數字,但不是按順序。我正在使用一個自寫功能,'beforeBefore'會檢查數字是否出現過。循環未結束。我如何擺脫循環?
如果該數字之前沒有出現,則函數「出現前」將返回「0」,如果該函數之前出現過,則該函數返回「1」。
目前,即使返回0,do-while循環也不會退出循環。該計劃永遠不會結束。關於我能做什麼的任何建議?編輯 - 降價確實很快。我已經添加了counter ++,但它仍然不起作用。也許有人可以建議內部循環?
while (count < 5) {
repeat = 1;
do {
randomNumber = rand() % 4 + 1;
cout << randomNumber;
repeat = appearBefore(randomNumber);
cout << " " << repeat << endl;
} while (repeat == 1);
//Add the number into an array of numbers that have appeared before
checker[counterForChecker] = randomNumber;
counterForChecker++;
counter++;
}
這是函數appearBefore(變量是全局變量):
int appearBefore(int number) {
int x = 0;
int match = 0;
while (x < counterForChecker+1) {
if (checker[x] == number) {
match = 1;
break;
}
else {
match = 0;
}
x++;
}
return match;
}
凡'count'遞增? – DumbCoder
在while循環中使用count <5時,位永遠不會在循環內改變它的值。你的意思是使用數字還是別的嗎? –
當你指的是'bool'時,不要使用'int'。 – molbdnilo