求大神看看,比赛结果预测的编程题!!中间为什么要a=b=c=d=10

/*在运动会游泳1500米自由泳的比赛前,有人让五位运动员据实力预测比赛的结果。
A选手说:B第二,我第三。
B选手说:我第二,E第四。
C选手说:我第一,D第二。
D选手说:C最后,我第三。
E选手说:我第四,A第一。
决赛成绩公布之后,每位选手的预测都只说对了一半,请编程输出比赛的实际名次*/
#include
int main()
{
int a,b,c,d,e;
for (a=1;a<6;a++)
{
for (b=1;b<6;b++)
{
if(a==b)
continue;
for (c=1;c<6;c++)
{
if(a==c || b==c)
continue;
for (d=1;d<6;d++)
{
if(a==d || b==d || c==d)
continue;
for (e=1;e<6;e++)
{
if(a==e || b==e || c==e || d==e)
continue;
if((b==2||a==3) && (b==2||e==4) && (c==1||d==2) && (c==5||d==3) && (e==4||a==1))
{
printf("A:%d\nB:%d\nC:%d\nD:%d\nE:%d\n",a,b,c,d,e);
a=b=c=d=10;//why?
break;
}
}
}
}
}
}
return 0;
}

a=

1个回答

因为一共有5层for循环,break只能跳出一层 也就是 e的那层。
他写a=b=c=d=10 就能把剩下的四层都跳出去 程序就结束了,不然还要把没层循环都执行完。
换句话说 他写成a=b=c=d=6 或者a=b=c=d=1000,只要大于6。
当然不写也可以,只是效率慢而已

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!