#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. Большое вам спасибо. Такой простой ответ, но я просто не мог его понять.