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

时间:2018-04-06 10:58:57

标签: c++

所以,我用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;
}

发生了什么?

1 个答案:

答案 0 :(得分:4)

你宣布:

int FLIP_RESULT = rand() % 2 + 1;

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

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