qq_39087338 2017-07-29 00:05 采纳率: 0%
浏览 1010

求大神看看,比赛结果预测的编程题!!中间为什么要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;
}

  • 写回答

1条回答 默认 最新

  • 胡说先生 2017-07-29 01:04
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?