我正在为游戏编写一个代码,提示用户选择他们想要翻转硬币的次数并猜测它将落在头上的次数。我写了大部分,只需要帮助完成它。我试图包括头部计数但遇到了问题。
#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;
}
答案 0 :(得分:-1)
以下是您的代码的一些问题:
for(int i=0;i<=n;i++)
这将使i
取0到n的值,这意味着你将在循环中输入n + 1次而不是n次。
return (cout_heads/n);
由于变量cout_heads
和n
都是整数,因此这将执行整数除法,而不是浮点除法。在这种情况下,结果将始终为0或1。
cout << calcCoin;
调用函数时,需要加括号。您的calCoin
函数也需要参数。