程序首先提示用户输入工资,使用橘枣 scanf() 函数将用户输入的数据存储到变量 salary 中。然后,使用 if-else 语句
根据税收规定计算税收:如果工资大于5000元,则计算应缴纳的税收((工资-5000)*5%)并减去税收得到税后工资;否则,税收为0,税后工资启伍纯等于基本工资。最后,程序使用 printf() 函数输出税收和悄咐税后工资的值。
、
输出为0的根本原因在于,C语言中的 %d 是打印一个整数,而你计算出来的税收是一个浮点数,应该用 %f 或者 %lf,所粗塌举以代码看起来应该是这样的:
case 2: printf("s=%f\n", (x - 800)*0.05) break另外,我怀疑你的第二个 else if 中的条件写错了,应该是:
else if ( 1200 <= x && x < 2000)你把后面的 2000 写成了 1200
最后,你可以直接在 if else 里面计算税收,不需要额外的定义一个 y ,去计算它的值,然后再用 switch:
if ( 0 <= x && x < 800 )printf("s=0\n")
else if ( 800 <= x && x < 1200 )
岩碧printf("s=%f\n", ( x - 800 ) * 0.05 )
else if ( 1200 <= x && x < 2000 )
printf("s=%f\n", ( x - 1200 ) * 0.08 )
else: # 这里就不用判断 2000 <= x 了,因为如果判断走到衫漏这里就代表了 x >= 2000
printf("s=%f\n", ( x - 2000 ) * 0.2 )
其实你的 if else 语句写得重复了,看下图说明:
所以最后的程序应该是:
#include<stdio.h>int main()
{
float a ,b,者烂c
printf("请输入奖金数:")
scanf("%f",&a)
if (a <500)
printf("应缴税款:%f\n实得奖金数:%f",a*0/100,a*100/100)
else if(a>=500&&a<改嫌薯1000)
printf("应缴税款:%f\n实得奖金数:%f", a * 3/ 100, a * 97 / 100)
else if(a>=1000&&a<2000)
printf("应缴税款:%f\n实得核者奖金数:%f", a * 5 / 100, a * 95 / 100)
else if(a>=2000&&a<5000)
printf("应缴税款:%f\n实得奖金数:%f", a * 8 / 100, a * 92 / 100)
else
printf("应缴税款:%f\n实得奖金数:%f", a * 12 / 100, a * 88 / 100)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)