Программирование на C. Цикл программы переворота монеты работает не так, как я хочу

#c #loops #for-loop

#c #циклы #для цикла

Вопрос:

Итак, я должен создать программу переворачивания монет, и я все сделал правильно, но я должен сделать так, чтобы она продолжала цикл, пока пользователь не введет 0. Я делал это, но каждый раз, когда программа запускается, выходные данные орлов и решек не сбрасываются. Я запускаю программу, она спрашивает, сколько раз я хочу, чтобы монета была перевернута, и я ввожу 5. Затем он дает мне, скажем, 3 орла и 2 решки, а затем снова задает мне тот же вопрос. Я снова ввожу 5, но теперь результаты равны 7 орлам и 3 решкам. Но я только попросил, чтобы его перевернули 5 раз, поэтому он добавляет старое количество голов / хвостов к новому, когда я просто хочу новое количество. Я уверен, что это простое решение, но, пожалуйста, помогите. Вот код:

 for (;;) {

printf("How many times do you want to flip the coin? (Press 0 to exit));
scanf("%d", amp;toss);                 

if (toss == 0) {
printf("Thank you for using the program!n");
break;                  //terminates program if toss = 0
}

puts (" ");

for ( counter = 0; counter < toss; counter   ) 
{
        if (flip( ) == 0)       //call the function flip
        heads  ;

        else
        tails  ;
}                   //end of for loop

printf( "Heads Was Flipped %d Timesn", heads );
printf( "Tails Was Flipped %d Timesn", tails );

continue;
return 0;
  

Комментарии:

1. вы должны сделать орел = 0 и решка = 0 перед вашим циклом «for»

2. вы должны сделать отступ перед представлением своего кода

Ответ №1:

Перед использованием переменных необходимо сбросить значение head и tail . Вот фрагмент кода. for (;;) {

 printf("How many times do you want to flip the coin? (Press 0 to exit));
scanf("%d", amp;toss);                 

if (toss == 0) {
printf("Thank you for using the program!n");
break;                  //terminates program if toss = 0
}

puts (" ");
heads = 0;//reset value of heads
tails = 0;//reset value of tails

for ( counter = 0; counter < toss; counter   ) 
{
        if (flip( ) == 0)       //call the function flip
        heads  ;

        else
        tails  ;
}                   //end of for loop

printf( "Heads Was Flipped %d Timesn", heads );
printf( "Tails Was Flipped %d Timesn", tails );

continue;
return 0;
  

Комментарии:

1. Большое вам спасибо. Такой простой ответ, но я просто не мог его понять.