#include
int get_status();
int get_income();
float sort(int, int);
float single (int);
float MFJ (int);
float MFS (int);
float HOH (int);
void exit();
void display(float);
int main()
{
int status, income;
float tax;
while ((status = get_status()) != 5)
{
income = get_income();
tax = sort(status, income);
display(tax);
}
return 0;
}
int get_status()
{
int temp;
printf ("1)Single\n2)Married Filing Jointly\n3)Married Filing Separately\n4)Head of Household\n5)Exit");
printf ("\n\n\nPlease enter filing status? ");
scanf ("%d", &temp);
if (temp == 5)
exit();
return (temp);
}
int get_income()
{
int temp;
printf ("Enter your taxable income: $");
scanf ("%d", &temp);
return (temp);
}
float sort(int status, int income)
{
if (status == 1)
return (single(income));
else if (status == 2)
return (MFJ(income));
else if (status == 3)
return (MFS(income));
else if (status == 4)
return (HOH(income));
else
{
printf ("You must enter 1-4 or 5 to Exit");
get_status();
}
}
float single(int income)
{
float temp;
if (income > 0 && income <= 24000)
temp = income * 0.15;
else if (income > 24000 && income <= 58000)
temp = 3600 + 0.28 * (income - 24000);
else if (income > 58000 && income <= 121300)
temp = 13162 + 0.31 * (income - 58000);
else if (income > 121300 && income <= 263750)
temp = 32738.5 + 0.36 * (income - 121300);
else if (income > 263750)
temp = 84020.5 + 0.396 * (income - 263750);
return temp;
}
float MFJ(int income)
{
float temp;
if (income > 0 && income <= 40100)
temp = 0.15 * income;
else if (income > 40100 && income <= 96900)
temp = 6015 + 0.28 * (income - 40100);
else if (income > 96900 && income <= 147700)
temp = 21919 + 0.31 * (income - 96900);
else if (income > 147700 && income <= 263750)
temp = 37667 + 0.36 * (income - 147700);
else if (income > 263750)
temp = 79445 + 0.396 * (income - 263750);
return temp;
}
float MFS(int income)
{
float temp;
if (income > 0 && income <= 20050)
temp = 0.15 * income;
else if (income > 20050 && income <= 48450)
temp = 3007.5 + 0.28 * (income - 20050);
else if (income > 48450 && income <= 73850)
temp = 10959 + 0.31 * (income - 48450);
else if (income > 73850 && income <= 131875)
temp = 18833.5 + 0.36 * (income - 73850);
else if (income > 131875)
temp = 39722.5 + 0.396 * (income - 131875);
return temp;
}
float HOH(int income)
{
float temp;
if (income > 0 && income <= 32150)
temp = 0.15 * income;
else if (income > 32150 && income <= 83050)
temp = 4822 + 0.28 * (income - 32150);
else if (income > 83050 && income <= 134500)
temp = 19074 + 0.31 * (income - 83050);
else if (income > 134500 && income <= 263750)
temp = 35074 + 0.36 * (income - 134500);
else if (income > 263750)
temp = 81554 + 0.396 * (income - 263750);
return temp;
}
void exit()
{
printf ("Tax program exited…");
}
void display(float tax)
{
printf ("The taxes owed are: $%.2f\n\n\n", tax);
}
보이드이고 리턴값은 분명히 없는데 왜그럴까요
실행은 되는데 오류가나니까 찝찝해요
이거 걍 stdlib에 있는 exit 랑 (이건 notreturn function임. 쉽게말하면 콜러로 안돌아오는 함수임.) 니가 정의한 exit랑 이름 똑같아서
난거라고 조심스레 추측해봄
함수이름을 바꾸면 될까요?
yes. my_exit 정도로 해보셈