단리와 복리
예금금액이 1000원이며, 단리가 년 7.2%, 복리가 4.7%라고 할때,
단리 :
1년차 이자 : 1000 x 0.072 = 72원
2년차 이자 : 1000 x 0.072 = 72원
3년차 이자 : 1000 x 0.072 = 72원
복리 :
1년차 이자 : 1000 x 0.047 = 47원
2년차 이자 : (1000+47) x 0.047 = 49.209원
3년차 이자 : (1000+47+49.209) x 0.047 = 51.427823원
1. 프로그램 사용자로부터 적금에 예치할 금액과 기간(년 단위)을 입력받는다.
2. 단리의 이율은 7.2%, 복리의 이율은 4.7%이다.
3. 프로그램 사용자가 5년 미만의 기간을 입력하면 입력을 재 요청한다.
4. 단리와 복리의 최종 이자를 표시하고 어떠한 상품이 더 좋은지 추천한다.
그리고 계산된 최종이자에서 원단위 미만은 삭제한다.
.......
c언어를 배우고 있다. 분명 이 문제는 main함수 이외에 새로운 함수를 만들어서 계산하라는 문제일것이다. 하지만 새로운 함수를 만드는데 아주 약하다. 만일 함수를 만들고 하는 일에 능숙하다면 이렇게 소스가 길지는 않았을것이다. 이는 나의 수준이라고 해도 과언이 아닐것이다. 특히 변수를 선언하는 첫부분은 너무 더럽게 보인다. 집앞에 덕지덕지 붙어있는 광고지를 보는것 같다.
1 #include <stdio.h>
2
3 int short_bank(int money);
4
5 int main(void)
6 {
7 int year;
8 int money;
9 int second_money;
10 int second_money_temp;
11 int money_short_temp = 0;
12 int money_long_temp = 0;
13 int result;
14 int i;
15 int year_temp = 0;
16 int year_temp1 = 0;
17 int short_money = 0;
18 int long_money = 0;
19 int money_shortrate;
20 int money_long_rate = 0;
21 int money_shortrate_sum = 0;
22 int money_longrate_sum = 0;
23 double short_rate = 0.072;
24 double long_rate = 0.047;
25
26 do{
27 printf("예치할 금액과 기간을 입력 : ");
28 scanf("%d %d", &money, &year);
29 } while (year < 5);
30 second_money = money;
31 printf("====================== \n");
32 printf("단리 이율이 적용된 계좌 \n");
33 for (i = 0; i < year; i++)
34 {
35 money_shortrate = money*short_rate; // 단리이율이 포함한 금액
36 money_shortrate_sum += money_shortrate; //매 년마다 단리이율을 중복해서 더함
37 year_temp++;
38 printf("%d년차 이자 : %d원\n", year_temp, money_shortrate);
39 }
40 result = money_shortrate_sum + money;
41 printf("이자가 적용된 금액 : %d원\n", result);
42
43 for (i = 0; i < 2; i++)
44 {
45 printf("===========================\n");
46 }
47
48 printf("복리 이율이 적용된 계좌 \n");
49
50
51 for (i = 0; i < year; i++)
52 {
53 second_money_temp = second_money * long_rate;//기본 이자 : 원금 * 이율
54
55 second_money += (second_money + second_money_temp) * long_rate;
56 // (원금+기본이자) * 이율
57 year_temp1++;
58 printf("%d년차 이자 : %d원\n", year_temp1, second_money_temp);
59 }
60 printf("이자가 적용된 금액 : %d원 \n", second_money);
61
62 if (second_money > result)
63 printf("복리상품이 단리상품보다 더 좋습니다.");
64
65 else
66 printf("단리상품이 복리상품보다 더 좋습니다.");
67
68 return 0;
69 }
2
3 int short_bank(int money);
4
5 int main(void)
6 {
7 int year;
8 int money;
9 int second_money;
10 int second_money_temp;
11 int money_short_temp = 0;
12 int money_long_temp = 0;
13 int result;
14 int i;
15 int year_temp = 0;
16 int year_temp1 = 0;
17 int short_money = 0;
18 int long_money = 0;
19 int money_shortrate;
20 int money_long_rate = 0;
21 int money_shortrate_sum = 0;
22 int money_longrate_sum = 0;
23 double short_rate = 0.072;
24 double long_rate = 0.047;
25
26 do{
27 printf("예치할 금액과 기간을 입력 : ");
28 scanf("%d %d", &money, &year);
29 } while (year < 5);
30 second_money = money;
31 printf("====================== \n");
32 printf("단리 이율이 적용된 계좌 \n");
33 for (i = 0; i < year; i++)
34 {
35 money_shortrate = money*short_rate; // 단리이율이 포함한 금액
36 money_shortrate_sum += money_shortrate; //매 년마다 단리이율을 중복해서 더함
37 year_temp++;
38 printf("%d년차 이자 : %d원\n", year_temp, money_shortrate);
39 }
40 result = money_shortrate_sum + money;
41 printf("이자가 적용된 금액 : %d원\n", result);
42
43 for (i = 0; i < 2; i++)
44 {
45 printf("===========================\n");
46 }
47
48 printf("복리 이율이 적용된 계좌 \n");
49
50
51 for (i = 0; i < year; i++)
52 {
53 second_money_temp = second_money * long_rate;//기본 이자 : 원금 * 이율
54
55 second_money += (second_money + second_money_temp) * long_rate;
56 // (원금+기본이자) * 이율
57 year_temp1++;
58 printf("%d년차 이자 : %d원\n", year_temp1, second_money_temp);
59 }
60 printf("이자가 적용된 금액 : %d원 \n", second_money);
61
62 if (second_money > result)
63 printf("복리상품이 단리상품보다 더 좋습니다.");
64
65 else
66 printf("단리상품이 복리상품보다 더 좋습니다.");
67
68 return 0;
69 }
0 개의 댓글: