C语言switch过程,计算工资纳税,无问题,但计算错误

#include
int main()
{
int s,m,p,n;
scanf("%d",&s);
switch(m=s/1000)
{
case'0':printf("纳税款:%d,实得工资数:%d",p=s0,n=s,p,n);break;
case'1':printf("纳税款:%d,实得工资数:%d",p=s
0.05,n=s-s0.05,p,n);break;
case'2':printf("纳税款:%d,实得工资数:%d",p=s
0.08,n=s-s0.08,p,n);break;
case'3':printf("纳税款:%d,实得工资数:%d",p=s
0.1,n=s-s0.1,p,n);break;
case'4':printf("纳税款:%d,实得工资数:%d",p=s
0.1,n=s-s0.1,p,n);break;
default:printf("纳税款:%d,实得工资数:%d",p=s
0.15,n=s-s*0.15,p,n);
}
}

改为 case 0: 这种样子,'0'是数字字符,和数字0不一样
switch(s/1000)就可以,不需要再定义一个m变量

'0'是字符常量,它是ascii码是48