请问这个输出的a,b,c的值为什么是1,1,1请分析一下这个程序。

#include <stdio.h>
int main ()
{int a=1,b=1,c=1;
switch (a)
{ case 0:a++;b++;break;
case 1:b++;
case 2:c--;break;
}
printf ("%d,%d,%d"a,b,c);
}


因为a=1,所以case1满足条件,执行b++,而b++后没有break,所以继续顺序执行c--,所以最后输出:1,2,0

#include <stdio.h>
#include<math.h>

int main()
{
    
   int a=1,b=1,c=1;
   switch (a)
   { 
      case 0:
          a++;
          b++;
          break;
      case 1:   // a = 1,直接执行到这里
          b++; // b = 1, b++;后面没有break;所以继续执行下一个case语句
      case 2: // 执行完b++;后b = 2
        c--; // 执行完 c--; 后,c= 0
        break;
   }
   printf ("%d,%d,%d",a,b,c); // a = 1, b = 2,c = 0
  return 0;
}