调试有偏差的硬币掷转 (C++)

Debugging a Biased Coin Flip (C++)

本文关键字:C++ 硬币 调试      更新时间:2023-10-16

所以,我在C++中制作了一个抛硬币工具,但控制台总是将每个硬币返回为正面或每个硬币作为反面返回。代码如下:

#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;
}

这是怎么回事?

你声明:

int FLIP_RESULT = rand() % 2 + 1;

在代码的开头。这意味着翻转仅在程序开始时发生一次,无论用户输入的翻转次数如何。

尝试将FLIP_RESULT随机作为 for 循环的第一行,您将看到它正在工作。