main() { int k=5,n=0; while(k>0) { switch(k) { default :brea

zw7106132022-10-04 11:39:541条回答

main() { int k=5,n=0; while(k>0) { switch(k) { default :break; case 1 :n+=k; case 2 :case 3 :n+
main()
{ int k=5,n=0;
while(k>0)
{ switch(k)
{ default :break;
case 1 :n+=k;
case 2 :
case 3 :n+=k;
}
k--;
}
printf("%dn",n);
}
我想知道 结果 7 是怎么算出来的.到底什么顺序?break 还是按CASE123执行下去?.

已提交,审核后显示!提交回复

共1条回复
砸你家天窗 共回答了16个问题 | 采纳率93.8%
第一次循环:k=5,进入switch,由于没有相应case,故跳出循环,k减1=4.
第二次循环:k=4,进入switch,由于没有相应case,故跳出循环,k减1=3.
第三次循环:k=3,进入switch,符合case3,执行n=n+k;n为3,k减1=2.
第四次循环:k=2,进入switch,符合case2,没有语句;n为3,k减1=1.
第五次循环:k=1,进入switch,符合case1,执行n=n+k;n为4,没有break跳出语句,执行case3,n为7.
1年前

相关推荐

有以下程序 Main() {int k=5,n=0; do {switch(k) {case1:case3:n+=1;
有以下程序 Main() {int k=5,n=0; do {switch(k) {case1:case3:n+=1; break; Default;n=0;k--; Case2:ca
我算的是0235 为什么答案没有0
有以下程序
Main()
{int k=5,n=0;
do
{switch(k)
{case1:
case3:n+=1; break;
Default;n=0;k--;
Case2:case4:n+=2;k--;break;
}
Printf(“%d”,n);
}
while(k>0&&n
wds02111年前1
空梁落燕泥 共回答了23个问题 | 采纳率95.7%
因为第一次k=5时,进入Default后,但没有break;就会顺序执行case2,所以第一个输出是2;
Main() {int k=5,n=0; do {switch(k) {case1: case3:n+=1; break
Main() {int k=5,n=0; do {switch(k) {case1: case3:n+=1; break;
答案是A235 为什么不是2356? K=1的时候怎么不执行case1: case3:n+=1; break;
结果n=6了.请哪位高人写个详细的过程还有为什么不执行k=1时n=6的输出结果的原因! 谢谢!O(∩_∩)O
Main()
{int k=5,n=0;
do
{switch(k)
{case1:
case3:n+=1; break;
Default;n=0;k--;
Case2: case4:n+=2;k--;break;
}
Printf(“%d”,n);
}
while(k>0&&n
男人VS海洋1年前1
zssl123 共回答了15个问题 | 采纳率100%
default 里面应该也有 break;
(1)k=5,执行默认——>k=4,n=0
(2)k=4,执行case 2和case 4,——>k=3,n=2
(3)执行 2,3,——>k=2,n=3
(4)执行 2,4 ,——>k=1,n=5;
(5)此时出口调节判断条件 k>0&&n