所以,我用C ++制作了一个硬币翻转工具,但是控制台总是将每个硬币作为Heads或每个硬币返回Tails。这是代码:
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <string>
using namespace std;
int main() {
srand(time(nullptr));
int FLIP_RESULT = rand() % 2 + 1;
int NUMBER_OF_FLIPS = 0;
cout << "Welcome to Coin Flipper. How many coins would you like to flip?"
<< endl;
cin >> NUMBER_OF_FLIPS;
for (int COUNTER = 0; COUNTER < NUMBER_OF_FLIPS; COUNTER++) {
if (FLIP_RESULT == 1) {
cout << "Heads." << endl;
} else if (FLIP_RESULT == 2) {
cout << "Tails." << endl;
} else {
cout << "Error." << endl;
}
}
return 0;
}
发生了什么?
答案 0 :(得分:4)
你宣布:
int FLIP_RESULT = rand() % 2 + 1;
代码开头。这意味着翻转只在程序开始时发生一次,无论用户输入的翻转次数如何。
尝试将FLIP_RESULT随机化为for循环的第一行,您将看到它正常工作。