C ++编写简单的硬币翻转游戏

时间:2014-10-26 19:53:30

标签: c++

我正在为游戏编写一个代码,提示用户选择他们想要翻转硬币的次数并猜测它将落在头上的次数。我写了大部分,只需要帮助完成它。我试图包括头部计数但遇到了问题。

#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;

int myRandNumGen(){

    int num = rand();

    return num;
}
char coinTossFunction( ){


    char coinToss;
    int coinTossValue = (myRandNumGen()%2); // 0 or 1

    switch (coinTossValue) {
        case 0:

            coinToss = 'H';

            break;

        case 1:

            coinToss = 'T';

            break;

        default:

            break;
        }
    return coinToss;
}

int calcCoin(int n){

    int cout_heads=0;

    for(int i=0;i<=n;i++){

        if(coinTossFunction() == 'H')

            ++cout_heads;

    }

    return (cout_heads/n);

}




int main(){

    int coinflips, guess;

    cout << "How many times do you want to flip the coin? " << endl;
    cin >> coinflips;

    cout << "Guess how many times a coin will land on heads if flipped: " << endl;
    cin >> guess;
    if (guess>coinflips) {
        cout << "Guess Error";

    }


    for(int i=1;i<=coinflips;i++){
        cout << calcCoin;


    }

1 个答案:

答案 0 :(得分:-1)

以下是您的代码的一些问题:

for(int i=0;i<=n;i++)

这将使i取0到n的值,这意味着你将在循环中输入n + 1次而不是n次。

return (cout_heads/n);

由于变量cout_headsn都是整数,因此这将执行整数除法,而不是浮点除法。在这种情况下,结果将始终为0或1。

cout << calcCoin;

调用函数时,需要加括号。您的calCoin函数也需要参数。