Domanda

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

Penso di aver scritto qualcosa di sbagliato. L'ho cercato molto ma non riesco a trovare ciò che non va.

(Una delle due squadre può vincere la Coppa e quella squadra deve avere 3 vittorie)

*altrimenti se (SC1

*altrimenti se (a> b)

È stato utile?

Soluzione

Se sto leggendo correttamente la tua domanda, vorresti che la condizione di risoluzione fosse che una delle squadre "A" o "B" ha un punteggio di 3. Tuttavia, nel tuo codice hai scritto nell'unico modo per Può loop è se una delle squadre ha un punteggio di 3. Vuoi:

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

Altri suggerimenti

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

si aggirerà solo se a o b è tre. Se vuoi aspettare fino a quando uno di questi è tre, usa:

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

La tua condizione di loop non è corretta. Si ferma presto perché nessuna delle due squadre ha un punteggio di 3. Loop fino a quando l'uno o l'altro non arriva fino a 3:

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

Fondamentalmente, lo stai dicendo per loop mentre A o B è ancora uguale 3. Il che non è quello che vuoi. Tu vuoi while((a<3) && (b<3))

Il tuo condizionale:

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

Afferma che il ciclo continuerà fino a quando a o b sono uguali a 3. Sei sicuro che questo sia quello che volevi?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top