请教一道C语言的题目

来源:百度知道 编辑:UC知道 时间:2024/05/12 11:10:52
1
main()
{int x=1,y=0,a=0,b=0;
switch (x)
{ case 1:switch (y)
{ case 0:a++; break;
case 1:b++; break;
case 2:a++;b++;break;
}
printf("%d %d\n", a,b);
)
输出结果是21
请教解题过程?

#include <stdio.h>
void main()
{
int x=1,y=0,a=0,b=0;
switch (x)
{
case 1:
switch (y)
{
case 0:a++; break;
case 1:b++; break;
case 2:a++;b++;break;
}
printf("%d %d\n", a,b);
}
}
/*
x=1使其直接进入二层switch语句:
y=0;
则执行a++;
所以此时a=1;b=0
由于有break;跳出,则输出应该是:
1 0
输出结果是2 1很明显错的,除非你打错了题目!

*/

是21吗?怎么感觉不对啊!