C语言之多重累进税额问题

        周六加班,晚上睡不着觉,无聊逛逛百度知道,看见一个税务问题,想想自己当年也是看见了这个就纠结,直接去玩游戏了,这次好好写写,乐于助人嘛。

这个是税额要求:假设工资税金案以下方法计算:X<1000元不收取税金,1000<X<2000.收取5%的税金2000<X<3000,收取10%;3000<X4000,收取15%的税金;4000<X<5000,收取20%的税金;X><x,2000元收取5%的税金;2000<x<300,收取10%的税金;3000<x<4000,收取15%的税金;4000<x5000收取25%的税金。当然有防御性编程的东西在里面,最好加上菜单的选择和输入检测。

废话不说,直接贴代码:


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    while(1)
    {

        float salary;
        int choice;
        int flag =1 ;
        printf("请输入你的工资数目:\n");
        scanf("%f",&salary);
        printf("%.3f\n",salary);
        //这里的flag做为工资输入的一个标记,如果输入不正确,就继续输入,直到正确的数值 
        while(flag)
        {
            if(salary < 0)
            {
                printf("工资输入错误,请重新输入:\n");
                scanf("%f",&salary);
            }
            else
            {
                flag = 0;
            }
       }
       //整数取千位数,做为case的参数刚刚好,当然还有好多奇妙的用法 
       choice = salary /1000;
       switch(choice)
       {
            case 0:
                 {
                     printf("税额为0\n");
                     break;
                 }
            case 1:
                 {
                     printf("税额为%.2f\n",(salary -1000) * 0.05);
                     break;
                 }
            case 2:
                 {
                     printf("税额为%.2f\n",1000 *0.05 + (salary-2000)*0.1);
                     break;
                 }
            case 3:
                 {
                     printf("税额为%.2f\n",1000 *(0.05+0.1) + (salary-3000)*0.15);
                     break;
                 }
            case 4:
                 {
                     printf("税额为%.2f\n",1000 *(0.05+0.1+0.15) + (salary-4000)*0.25);
                     break;
                 }
            default:
                 {  
                     printf("税额为%.2f\n",1000 *(0.05+0.1+0.15) + (salary-4000)*0.25);
                     break;
                 }
           
       }
        
         
    }
    system("PAUSE");	
    return 0;  
  
    
}

这里贴下输出结果:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值