程序无法运行任何人都可以帮助我理解原因。这是一个硬币翻转游戏,应该询问您想要翻转硬币的次数,询问您是否正在调用头部或尾部,翻转它然后说出您的猜测是对还是错
# include <iostream>
# include <ctime>
# include <cstdlib>
# include <string>
using namespace std;
int tossingtimes()
{
int tosses;
cout << "How many tosses will we attempt? " << endl;
cin >> tosses;
while(tosses < 1)
{
cout << "Error tosses must be greater than or equal to 1. Please submit a correct answer." << endl;
cin >> tosses;
}
return tosses;
}
void H_T ()
{
char HT;
cout << "Will you be guessing heads or tails? ('h' or 't')";
cin >> HT;
if ( HT = 'h')
{
cout << "You chose to select Heads!";
}
else
{
cout << "You chose to select Tails!";
}
}
int numHT ()
{
int num;
cout << "How many times will " << H_T () << "come up?";
cin >> num;
return num;
}
int head_win ()
{
int heads=0;
heads++;
return heads;
}
int tails_win ()
{
int tails=0;
tails++;
return tails;
}
int main()
{
srand((unsigned) time(0));rand();
int result = rand() % 2;
while (true)
{
int tosses_amount, HT, num;
tosses_amount = tossingtimes();
H_T ();
num = numHT();
cin.ignore (1000, 10);
if (tosses_amount == 0)
break;
for (int i = 0; i < tosses_amount; i++)
//random number generator
{
if (result == 0)
{
int head_win();
cout << "Heads" << endl;
}
else if (result == 1)
{
int tails_win();
cout << "Tails"<<endl;
}
}
}
system ("pause");
return 0;
}
答案 0 :(得分:2)
我看到的一个明显问题是:
void H_T() {
// ...
}
// ...
cout << "How many times will " << H_T() << "come up?";
这会尝试从H_T
打印出返回值,但由于H_T
具有void返回类型,因此没有这样的事情,编译将失败。
浏览代码,看起来这不是唯一的代码。我想如果我是你,我会备份,或多或少重新开始。一次写下一些小块,并在进入下一个之前验证每个小块是否符合要求。
答案 1 :(得分:1)
在void H_T()
中你有:
if ( HT = 'h')
将值'h'
分配给HT
,该值始终为true。您希望==
来测试是否相等。
不幸的是,您没有跟踪用户在代码中的任何位置选择的内容......
答案 2 :(得分:0)
初看..
int head_win ()
{
int heads=0;
heads++;
return heads;
}
int tails_win ()
{
int tails=0;
tails++;
return tails;
}
head_win()将始终返回1和tails_win()..
int head_win(); this doesn t mean nothing..
你必须声明一个变量:
int wins = head_win();
答案 3 :(得分:0)
问题不在于此代码“不运行”;它甚至没有编译。您的代码中存在许多错误。
numHT()
中,您使用的是H_T()
的结果;但是H_T()
会返回void
。tosses_amount
的值与0
进行比较;但tosses_amount
被赋予tossingtimes()
的值,该值始终大于0
。for
循环内注释为// random number generator
,您似乎正在尝试使用函数heads_win()
和tails_win()
;实际上,您正在使用这些名称声明新功能。main()
的开头),只是一遍又一遍地重复使用相同的值。还有其他几个错误,但您可以从这些错误开始。