int i=1,s=3; do{ s+=i++; if(s%7==0) continue; else++i;} while(s<15);printf("%d",i)

输出结果是什么,最好分析一下

按顺序来:
s+=i++;//s = s+i得到s=4;i=2;
if(s%7==0) continue; //不满足,继续运行下一句
else ++i; //得到i = 3;
while(s<15);//满足,继续do循环

s+=i++;//s = s+i得到s=7;i=4;
if(s%7==0) continue; //满足,转至判断while条件
while(s<15);//满足,继续do循环

s+=i++;//s = s+i得到s=11;i=5;
if(s%7==0) continue; //不满足,继续运行下一句
else ++i; //得到i = 6;
while(s<15);//满足,继续do循环

s+=i++;//s = s+i得到s=17;i=7;
if(s%7==0) continue; //不满足,继续运行下一句
else ++i; //得到i = 8;
while(s<15);//不满足,跳出do循环

printf("%d",i); //输出 8
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-04
int i=1,s=3;
do{ s+=i++;
if(s%7==0)
continue;
else
++i;}
s+=i++;
就是s+=i;
i++;
所以第一次是s = 4, i = 2
s %7 不为0, 执行i++, i = 3;
第二次循环 s = 7; i = 4;
s%7为0, 不执行i++;
第三次 s = 11; i = 5;
s%7不为0, i++, i=6
第四次s = 17, i = 7
s%7不为0, i++, i = 8;
所以输出8
第2个回答  2011-08-04
兄弟你的程序有问题,你注意下do循环的调运格式 还有不要滥用分支
第3个回答  2011-08-04
输出8
第4个回答  2011-08-04
。。。。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网