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胜)
* else if(sc1
* if if(a&gt; b)
答案 0 :(得分:3)
while((a==3) || (b==3));
仅当a
或b
为3时,才会循环播放。如果你想要等到其中一个是三,请使用:
while ((a!=3) && (b!=3));
答案 1 :(得分:2)
您的循环条件不正确。它提前停止,因为两队都没有得分3.循环直到一个或另一个达到3:
while((a < 3) && (b < 3));
答案 2 :(得分:2)
基本上,你告诉它循环,而a或b仍然等于3.这不是你想要的。你想要while((a<3) && (b<3))
答案 3 :(得分:1)
如果我正确地阅读了您的问题,您希望终止条件是团队“a”或“b”中的一个得分为3.但是,在您的代码中,您已经写了唯一的如果其中一个队伍得分为3,那么while循环就可以了。你想要:
while( !( a==3 || b == 3) )
答案 4 :(得分:1)
您的条件:
while((a==3) || (b==3));
说明只要a
或b
等于3,循环就会继续。你确定这是你想要的吗?