Pregunta

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");

Creo que escribí algo mal. Lo he buscado mucho, pero parece que no puedo encontrar lo que le pasa.

(Uno de los dos equipos puede ganar la Copa y ese equipo tiene que tener 3 victorias)

*de lo contrario si (SC1

*más si (a> b)

¿Fue útil?

Solución

Si estoy leyendo su pregunta correctamente, le gustaría que la condición de terminación sea que uno de los equipos "A" o "B" tenga una puntuación de 3. Sin embargo, en su código ha escrito de la única manera de que Can Loop es si uno de los equipos tiene una puntuación de 3. Desea:

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

Otros consejos

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

se encenderá solo si a o b son tres. Si quieres esperar hasta que uno de ellos sea tres, usa:

while ((a!=3) && (b!=3));

Su condición de bucle es incorrecta. Se detiene temprano porque ninguno de los equipos tiene un puntaje de 3. bucle hasta que uno u otro llegue a 3:

while((a < 3) && (b < 3));

Básicamente, le estás diciendo que se buce mientras A o B todavía es igual 3. Que no es lo que quieres. Usted quiere while((a<3) && (b<3))

Tu condicional:

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

Afirma que el bucle continuará mientras a o b son iguales a 3. ¿Estás seguro de que esto es lo que querías?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top