これは「しますが、ループが機能していません
-
27-10-2019 - |
質問
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");
私は何か間違ったものを書いたと思います。私はそれをたくさん検索しましたが、それが何が悪いのかを見つけることができないようです。
(2つのチームのうちの1つがカップに勝つことができ、そのチームは3勝する必要があります)
*else if(sc1
*else if(a> b)
解決
私があなたの質問を適切に読んでいるなら、あなたは終了条件を「A」または「B」の1つがスコアを持っていることを望みます。ただし、あなたのコードでは、その唯一の方法で書いたのですループは、チームの1つが3のスコアを持っている場合です。
while( !( a==3 || b == 3) )
他のヒント
while((a==3) || (b==3));
場合にのみループします a
また b
3つです。そのうちの1つが3になるまで待ちたい場合は、以下を使用してください。
while ((a!=3) && (b!=3));
ループ状態が正しくありません。どちらのチームも3のスコアを持っていないため、早めに停止しています。
while((a < 3) && (b < 3));
基本的に、AまたはBがまだ3つ等しい間、ループするように言っています。これはあなたが望むものではありません。あなたが欲しい while((a<3) && (b<3))
あなたの条件:
while((a==3) || (b==3));
ループはどちらも続くと述べています a
また b
3に相当します。これがあなたが望んでいたものだと確信していますか?
所属していません StackOverflow