#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;
}
现在码过最长的一道题了,记录一下……