海军陆战队员5西瓜:关于C语言问题

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 15:05:22
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("%d\n",n);
?? }
谁能写出结果并帮我分析一下,谢了
还想问一下,这个程序怎么用了这么多括号?我不是太明白

大概是7吧

K=5,4时,N不变化=0
K=3时N=3;
K=2时,N=3+2=5;
K=1时,N=5+1+1=7;
所以答案应该是7吧,如果对的告诉我

main()
{ int k=5,n=0;
while(k>0) /*k>0的时候循环*/
{ switch(k) /*分析k*/
{ default : break; /*不是分析范围就退出switch*/
case 1 : n+=k; /*如果是1 就执行n+=k 因为没break所以也执行2和3的,所以执行2次n+=k*/
case 2 :
case 3 : n+=k; /*如果是2和3,执行n+=k*/
}
k--; /*k--*/
}
printf("%d\n",n);/*打印n*/
}

当k=3的时候,1次n+=k n=3
当k=2的时候 1次n+=k n=5
当k=1 的时候 2次 n+=k n=7

main()
{
}
while()
{
}
switch()
{
}
这3个都需要大括号的