Этот цикл `do.. while` не работает - PullRequest
0 голосов
/ 01 мая 2011
int sc1,sc2,a=0,b=0;

do
{

 printf("Give the scores\n");

 scanf("%d %d", &sc1,&sc2);

 //===============================================

 if (sc1 > sc2)     
   a+=1;
 else if (sc1<sc2)
   b+=1;
 else if (sc1==sc2)
   printf("tie\n");

 //===============================================

 if (a>b)    
    printf("team 1 is in the lead\n");
 else if (a<b)
    printf("team 2 is in the lead\n");
 else if (b==a)
    printf("tie\n");      

}
while((a==3) || (b==3));

//===============================================


if (a==3)
  printf("team 1 got the cup");
else
  printf("team 2 got the cup");

Я думаю, что написал что-то не так.Я много искал, но не могу понять, что с ним не так.

(одна из двух команд может выиграть кубок, и эта команда должна выиграть 3 раза)

* еще, если (sc1

* еще, если (a> b)

Ответы [ 5 ]

3 голосов
/ 01 мая 2011
while((a==3) || (b==3));

будет зацикливаться, только если a или b - три.Если вы хотите подождать, пока один из них не станет равным трем, используйте:

while ((a!=3) && (b!=3));
2 голосов
/ 01 мая 2011

По сути, вы говорите циклу, пока a или b все еще равны 3. Это не то, что вы хотите. Вы хотите while((a<3) && (b<3))

2 голосов
/ 01 мая 2011

Ваше условие цикла неверно. Он останавливается рано, потому что ни одна из команд не набрала 3 балла. Цикл пока одна или другая не наберут 3:

while((a < 3) && (b < 3));
1 голос
/ 01 мая 2011

Ваше условное:

while((a==3) || (b==3));

Указывает, что цикл будет продолжаться до тех пор, пока a или b равны 3. Вы уверены, что это то, что вы хотели?

1 голос
/ 01 мая 2011

Если я правильно читаю ваш вопрос, вы бы хотели, чтобы в качестве условия завершения было указано, что одна из команд "a" или "b" имеет оценку 3. Однако в вашем коде вы написали, что единственноецикл while может выполняться, если одна из команд набрала 3 балла. Вы хотите:

while( !( a==3 || b == 3) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...