最新回答 / 乌晒粥
题目原来就是if(score&是不是=10000),你是不是不小心改 if(score&石玩家=10000) { printf("钻石玩家"); } else if(score&els=5000) { printf("白金玩家"); } else if(score&int=1000) ...
2019-12-05
我觉得解析思路有问题:照先算高优先级的()!那这样:int x=1;int y=1;求:++x+2*8/y*(x*2)/2;如果按上述操作,先算():++x+2*8/y*(1*2)/2 --> 2+16/1*2/2 --> 2+16*2/2-->2+32/2 -->2+16 -->结果:18。然而正确结果是:34。运算过程:2+16/1*(2*2)/2 --> 2+16*4/2 --> 2+64/2 --> 2+32 --> 结果:34。我觉得运算:应先由左往右运算,优先级高的捆扎一起运算。我这里这道就是先从左往右,后面是比+优先级高的* 、/ 所以*、/ 扎堆运算、同级别仍然遵循从左往右执行
2019-12-05
感觉执行逻辑是,
例如当外循环m=5
内循环从n=2开始一直自增到n=4,都不满足if(m%n==0),所以不执行break,就没跳出内循环,当n自增到n=5,因为不满足内循环for的条件:n<m,所以退出内循环,往下执行if(m==n),因为满足条件,所以输出m=5.
然后外循坏自增到m=6,内循坏重启,n=2,满足内循环的if(m%n==0),然后执行break,退出内循环,执行下一句if(m==n),因为不满足,所以printf("%d",m)不执行,回到外循环开始对m进行自增。
。。。。。。。。。。
例如当外循环m=5
内循环从n=2开始一直自增到n=4,都不满足if(m%n==0),所以不执行break,就没跳出内循环,当n自增到n=5,因为不满足内循环for的条件:n<m,所以退出内循环,往下执行if(m==n),因为满足条件,所以输出m=5.
然后外循坏自增到m=6,内循坏重启,n=2,满足内循环的if(m%n==0),然后执行break,退出内循环,执行下一句if(m==n),因为不满足,所以printf("%d",m)不执行,回到外循环开始对m进行自增。
。。。。。。。。。。
2019-12-05