Я делаю программу бросков монет для моего класса C++, и мы должны сделать функцию, которая переворачивает монету и выводит ее, если она является головами или хвостами, и печатать 10 на строку. Когда я запускал программу, хотя утверждения if, которые я использовал, чтобы определить, была ли монета головами или хвостами, было недостаточно, чтобы выбрать из них.Почему мои утверждения if не работают последовательно?
#include <iostream>
#include <ctime>
using namespace std;
void coinToss(int times);
int main()
{
srand(time(0));
int times;
cout << "How many times would you like to toss the coin?" << endl;
cin >> times;
coinToss(times);
return 0;
}
void coinToss(int times)
{
int toss = 0, count = 0;
for(int i = 0; i < times;i++)
{
toss = rand()%2;
if(toss == 1)//Detects if coin is heads.
{
cout << "H";
}
if(toss == 0)//Detects if coin is tails.
{
cout << "T";
}
else //I had to include this for the program to run, further explanation below the code.
{
cout << "Ya done goofed.";
}
count++; //Counts to ten
if(count == 10) //Skips to the next line if the coin has been tossed ten times.
{
cout << endl;
count = 0;
}
}
}
В один момент я заменил голову или хвосты «соиЬ < < жеребьевки;» и только возвращаемые числа были 1 и 0. Я не понимаю, как, если я получаю только два числа, которые я проверяю, некоторые из них не попадают в мои операторы if.
Чтобы выполнить это задание, я изменил второе выражение if в выражении else, и все кажется персиковым, но я бы очень хотел понять, что здесь происходит.
'if (toss == 0)' ==> 'else if (toss == 0)' – WhozCraig
'else' применяются только к' if (toss == 0) ', поэтому, когда' toss == 1 '... – Jarod42
вам нужно использовать вложенный, если .. – lakesh