Я делаю программу подбрасывания монеты для своего класса C ++, и мы должны создать функцию, которая подбрасывает монету и распечатывает, орел она или решка, и выводит по 10 в каждой строке. Когда я запускал программу, операторов 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;
}
}
}
В какой-то момент я заменил орла или решку на «cout ‹---------------- toss;» и единственными возвращенными числами были 1 и 0. Я не понимаю, как, если я получаю только два числа, которые я проверяю, некоторые из них не улавливаются моими операторами if.
Чтобы завершить задание, я изменил второй оператор if на оператор else, и все кажется приятным, но мне бы очень хотелось понять, что здесь происходит.
else
применяется только кif (toss == 0)
, поэтому, когда _3 _... - person Jarod42   schedule 07.10.2014