Question

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

Je pense que je l'ai écrit quelque chose de mal. Je l'ai beaucoup cherché ce mais ne peut pas sembler trouver ce qui ne va pas avec elle.

(L'une des deux équipes peut gagner la coupe et que l'équipe doit avoir 3 victoires)

* else if (SC1

* else if (a> b)

Était-ce utile?

La solution

Si je lis votre question que vous aimeriez la condition de terminaison être que l'une des équipes « a » ou « b » a un score de 3. Cependant, dans votre code que vous avez écrit que la seule manière la boucle while de boîte est si l'une des équipes a un score de 3. Vous voulez:

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

Autres conseils

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

volonté que si a ou b est trois. Si vous voulez attendre jusqu'à ce que l'un d'eux est de trois, utilisez:

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

Votre condition de boucle est incorrecte. Il s'arrête tôt, car aucune équipe a un score de 3. En boucle jusqu'à l'un ou l'autre se lève à 3:

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

En fait, vous dire à boucle while a ou b égalent encore 3. Ce qui est pas ce que vous voulez. Vous voulez while((a<3) && (b<3))

Votre condition:

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

États que la boucle continuera aussi longtemps que l'a ou b sont égaux à 3. Etes-vous sûr que c'est ce que vous vouliez?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top