C primer plus第七章编程题8

#include <stdio.h>
#include <math.h>
#include <string.h>
#define OVERTIME 40
#define TAXRATE1 0.15
#define TAXRATE2 0.2
#define TAXRATE3 0.25
#define TAXBASE1 300
#define TAXBASE2 450
#define TAX1 TAXBASE1 * TAXRATE1;
#define TAX2 TAXBASE1 * TAXRATE1 + (TAXBASE2 - TAXBASE1) * TAXRATE2;
float payment(int time, float payrate);
float tax(float income);
int main(void)
{
    int label, worktime;
    float payrt, paym, payt, payc;
    printf("*********************************************************************\n");
    printf("Enter the number corresponding to the desired pay rate or action:\n");
    printf("1) $8.75/hr                                        2) $9.33/hr\n");
    printf("3) $10.00/hr                                       4) $11.20/hr\n");
    printf("5) quit\n");
    printf("*********************************************************************\n");
    scanf_s("%d", &label);
    if (label == 5)
        return 0; 
    else
        while (label != 5)
        {
            if (label < 1 || label > 4)
            {
                printf("%d is not at 1~4, please try to enter a number in 1~4:", label);
                scanf_s("%d", &label);
                continue;
            }
            switch(label)
            {
                case 1:
                    payrt = 8.75;
                    break;
                case 2:
                    payrt = 9.33;
                    break;
                case 3:
                    payrt = 10.00;
                    break;
                case 4:
                    payrt = 11.20;
                    break;
                default:
                    printf("Please enter number 1~4.\n");
            }
            printf("Please enter your work time(hour):");
            scanf_s("%d", &worktime);
            paym = payment(worktime, payrt);
            payt = tax(paym);
            payc = paym - payt;
            printf("Your sum-income is %.2f, tax fee is %.2f and clean income is %.2f.\n", paym, payt, payc);
            printf("Wants to try more label please enter 1~4, to end please enter 5.\n");
            scanf_s("%d", &label);
        }
    return 0;
}

float payment(int time, float payrate)
{
    float sum;
    if (time > 40)
        sum = (time - OVERTIME) * 1.5 * payrate + OVERTIME * payrate;
    else
        sum = time * payrate;
    return sum;
}

float tax(float income)
{
    float tax_fee;
    if (income <= TAXBASE1)
    {
        tax_fee = TAXRATE1 * income;
    }
    else if (income <= TAXBASE2)
    {
        tax_fee = (income - TAXBASE1) * TAXRATE2 + TAX1;
    }
    else
        tax_fee = (income - TAXBASE2) * TAXRATE3 + TAX1 + TAX2;
    return tax_fee;
}

现在码过最长的一道题了,记录一下……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值