[15일차](홍정모의따배c)다중선택 else if
*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시
안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.
정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고
제가 적은건 이해를 돕기 위한 부연설명과 제가 이해한 몇개의 중심적인 내용이 다소
생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면
'인프런- 홍정모의 따라하며 배우는c' 과정을 수강하시길 바랍니다.
- 문제
각 연봉별 세율을 구하고 세후 금액을 구하라
- 힌트1
나도 42퍼떼일날이 오려나
- 힌트2
예제코드에 코드를 추가해서 구하면 된다.
- 내코드
#include <stdio.h>
#define BASE1 12000000.0
#define BASE2 46000000.0
#define BASE3 88000000.0
#define BASE4 150000000.0
#define BASE5 300000000.0
#define BASE6 500000000.0
#define RATE1 (6.0 / 100.0)
#define RATE2 (15.0 / 100.0)
#define RATE3 (24.0 / 100.0)
#define RATE4 (35.0 / 100.0)
#define RATE5 (38.0 / 100.0)
#define RATE6 (40.0 / 100.0)
#define RATE7 (42.0 / 100.0)
#define BASIC_DEDUCTION 1500000.0
int main()
{
double income = 0.0;
double tax = 0.0;
scanf("%lf", &income);
income -= BASIC_DEDUCTION;
if (income <= BASE1)
{
tax = income * RATE1;
}
else if (income <= BASE2)
{
tax = BASE1 * RATE1 + (income - BASE1) * RATE2;
}
else if (income <= BASE3)
{
tax = BASE1 * RATE1 + BASE2 * RATE2 + (income - BASE2) * RATE3;
}
else if (income <= BASE4)
{
tax = BASE1 * RATE1 + BASE2 * RATE2 + BASE3 * RATE3 + (income - BASE3) * RATE4;
}
else if (income <= BASE5)
{
tax = BASE1 * RATE1 + BASE2 * RATE2 + BASE3 * RATE3 + BASE4 * RATE4 + (income - BASE4) * RATE5;
}
else if (income <= BASE6)
{
tax = BASE1 * RATE1 + BASE2 * RATE2 + BASE3 * RATE3 + BASE4 * RATE4 + BASE5 * RATE5 + (income - BASE5) * RATE6;
}
else if (income >= BASE6)
{
tax = BASE1 * RATE1 + BASE2 * RATE2 + BASE3 * RATE3 + BASE4 * RATE4 + BASE5 * RATE5 + BASE6 * RATE7 + (income - BASE6) * RATE7;
}
printf("Tax is = %f\n", tax);
printf("Your income after tax deduction = %f", income - tax);
return 0;
}
아무래도 계산이 틀린것 같다
어떻게 잘못 계산한듯 하다
- 교수님코드
else if (income <= BASE3)
{
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (income - BASE2) * RATE3;
}
else if (income <= BASE4)
{
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (BASE3 - BASE2) * RATE3 + (income - BASE3) * RATE4;
}
else if (income <= BASE5)
{
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (BASE3 - BASE2) * RATE3 + (BASE4 - BASE3) * RATE4 + (income - BASE4) * RATE5;
}
else if (income <= BASE6)
{
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (BASE3 - BASE2) * RATE3 + (BASE4 - BASE3) * RATE4 + (BASE5 - BASE4) * RATE5 + (income - BASE5) * RATE6;
}
else
{
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (BASE3 - BASE2) * RATE3 + (BASE4 - BASE3) * RATE4 + (BASE5 - BASE4) * RATE5 + (BASE6 - BASE5) * RATE6 + (income - BASE6) * RATE7;
}
마지막은 더이상 복잡한구조가 없기에
else로 바꿔도 된다.
-틀린이유
2 구간이후에도 차감된만큼 세액을 증가시켜야 했는데
내생각이 짧았다
그렇다면 재미로 꿈의 연봉 세후 1억이 되려면 내연봉이 얼마여야 할까
열심히 살아야겠다