상속액을 입력 받아 상속세 계산하기
(단, 1억 원까지는 10%, 1억~5억 원 20%, 5억~10억 원 30%, 10억~30억 원 40%, 30억 원 이상 분은 50% 임.
예를 들어 1억3천만 원이면 상속세는 1억*10% + 3천만*20% =1600 만원임),if/else if문 사용
---------------------------------------여기까지 문제
질문)
예를들면 6억 2천은 어떤식으로 계산한다는거임?
1억 * 10퍼 1~5억 20퍼 5~10억 30퍼 다 더한값임?
tax랑 money 변수임 money가 상속액 입력값이고,
대충 2억받았을때 tax = 1억x0.1+(money-1억)x0.2 이렇게 생각했는데 맞음? 이 다음을 나가야되는데 어케 써야 답을 완성할지 모르겠음..
#include <stdio.h>
int main(){
double money,tax;
printf("상속액 : ");
scanf("%lf", &money);
if(money<=1e8){
tax=1e8*0.1;}
else if(money<=5e8){
tax=1e8*0.1+(money-1e8)*0.2;}
답:
#include <stdio.h>
int main(){
double money,tax;
printf("상속액 : ");
scanf("%lf", &money);
if(money<=1e8){
tax=1e8*0.1;}
else if(money<=5e8){
tax=1e8*0.1+(money-1e8)*0.2;}
else if(money<=10e8){
tax=1e8*0.1+4e8*0.2+(money-5e8)*0.3;}
else if(money<=30e8){
tax=1e8*0.1 + 4e8*0.2 + 5e8*0.3 + (money-10e8)*0.4;}
else
tax=1e8*0.1+4e8*0.2+5e8*0.3+20e8*0.4+(money-30e8)*0.5;
printf("상속세는 %lf",tax);
return 0;
}
해주는사람들은 너무착해
예를 들어 1억3천만 원이면 상속세는 1억*10% + 3천만*20% =1600 만원임), <-- 나 왜 이해 안가지
아 이해갔따
제가 깝쳐서 죄송한데 30억 이상일때 코딩이 1억*0.1+4억*0.2+5억*0.3+20억*0.4+(money-30억)*0.5 나왔는데 맞는지
세율이 5종이 있으니깐 한달 하루 시 분 초 나누듯 해서 double a[5]처럼 해서 if문으로 30억이상이면 temp에 5 같은식으로 else if 4, else if3,2,1 해서 if문 끝나고 for(i=0;i++;i<temp)요렇게 30억이상이면 a[4]의 값이 30억이 들어 있을테니 a[i] = a[i] * (float i * 0.1) 요런식으로 넣고 나중에 a[0]에 몰아서 더한다음 출력하심될듯.. 물론 이건 죤나 비효율적
근데 저게 답이라고 하는듯 ㅡㅡ 머리 째지겠음
ㄴㄴ 그리고 반복문 이런거 다 배제하고 오직 조건문으로만 해보라고함 ㅡㅡ
달리보면 5진법에서 볼 때 1의자리에 0~4까지 들어가고 2의자리에선 5~24까지 들어가고 그런거 생각하심 됨..
반복문은 편히 하려고 쓰는거고 코드 길어지면 얼마든지 가능해여 저도 멍청하지만..
이건 제가 1e8 5e8 <-- 요게 무얼 뜻 하는진 모르겠어서 큰 도움 드리긴 힘들겠네여.. 근데 결국엔 1억이상이냐 5억 이상이냐 그런걸로 따지는걸꺼에요
if(money<=1e8) 코드를 보면 알 수 있듯이 이 경우 0.1퍼센트의 세율을 부과하니 1e8 = 1억, money가 1억 이하 일 경우 10%의 세율을 부과한다
if(money<=5e8){마찬가지로 1억 이하가 아니면서 5억 이하일 경우, tax=1e8*0.1+(money-1e8)*0.2;} 여기서 뜻하는건 1e8*0.1 1억은 10%로, + (money-1e8)*0.2 그리고 상속액에서 1억을 뺀 다음 그 남는돈(1억3천의 예에선 3천)에는 20%로
1e8<- 지수 표현 법칙 1e8=1x10의8승 고록 1억
지금꺼 이해하셨으면 충분하실듯.. 다음 계산식은 tax=1e8*0.1+(money-1e8)*0.2 + (money-1e8-5e8)*0.3 하심 되어요.. 근데 저도 혼자 공부하는 초보라 1e8 5e8이 무슨소린지 모르겠네요
아하..5는 50의 8승이군여 암튼 쉽사리 해결되셨을듯;ㄷㄷ
아 맞아; 지수표현법칙 까먹었었음;;배운거구낭
1e8보고 1억 유추한거 자체가 제입장은 경이로운거임 굿
이거 구하는 방식으로는 몇 가지가 더 있을텐데 카즈야님 교수님이 저거랑 같은 방식으로 뒤를 이으라고 하신거면 똑같으방식으로 이어내는게 좋을꺼에요. 교수마다 다르지만 편협한 사람은 다른 방식을 쓰면 참신하다고 생각하기보단 제시한 코드를 이해 못 했다고 생각함
공부 + 학점 두 가지를 다 챙기기 위해 다니는 학교라면 합리적 선택으로 위 방법을 하되, 유용한 다른 방식은 혼자 공부하시는 쪽으로 교수님들은 다들 자기 말 잘 듣고 이해하는 학생을 좋아하니깐
오늘 조건문만 배워서 조건문만 쓰라고한건인듯; codesafer ㄷㄷㄷ 역시;
방식 신경 안쓰면 지금 프수님이 말씀하신 방식이 직관적으로 알아먹기도 쉽고 좋은듯..
우물안개구리였네요ㅋㅋㅋㅋ 야간편돌님은 뭐하는분이시길래ㄷㄷ;
편의점 야간알바요..
그나마 아는게 c밖에 없어서 답변도 c밖에 못하고 답변보단 질문올리러옴ㅋㅋ
기분좋게 답변 얻고 갑니다. 감사합니다!
tax=1e8*0.1+(money-1e8)*0.2 + (money-1e8-5e8)*0.3 < 근데 이식은 상속액 6억일때 성립안되는 식인듯
아 그러네요 ㅋㅋ else if(money >= 10e8) 일 때, tax = 1e8*0.1 + 5e8*0.2 + (money-5e8)*0.3 이게 상속액 5억 이상일시 맞는듯; 그 다음은 1e8*0.1 + 5e8*0.2 + 1e9*0.3 + (money-1e9)*0.4 다음은 else 만 쓰시고 막항 3e9쓰셔서 계산ㄱㄱ;|
아 알게씀.. 1e8*0.1에서 1억의 10%에 1억부터 5억까지인 4억의 20%를 더해야하기때문에 5e8*0.2가 잘못됨;
else if(money <= 10e8) 일 때, tax = 1e8*0.1 + 4e8*0.2 + (money-5e8)*0.3
그 이후도 5억~10억은 10억-5억=5억이니깐 1e9가 아닌 5e8을 써야하네여
http://ideone.com/ooWtkh
여기 코드..