1// calculator.c
2// κΈ°λ³Έ κ³μ°κΈ° νλ‘κ·Έλ¨
3
4#include <stdio.h>
5#include <stdlib.h>
6
7// λ§μ
8double add(double a, double b) {
9 return a + b;
10}
11
12// λΊμ
13double subtract(double a, double b) {
14 return a - b;
15}
16
17// κ³±μ
18double multiply(double a, double b) {
19 return a * b;
20}
21
22// λλμ
23double divide(double a, double b) {
24 if (b == 0) {
25 printf("μ€λ₯: 0μΌλ‘ λλ μ μμ΅λλ€.\n");
26 return 0;
27 }
28 return a / b;
29}
30
31// λ©λ΄ μΆλ ₯
32void print_menu(void) {
33 printf("\n=== κ³μ°κΈ° ===\n");
34 printf("1. λ§μ
(+)\n");
35 printf("2. λΊμ
(-)\n");
36 printf("3. κ³±μ
(*)\n");
37 printf("4. λλμ
(/)\n");
38 printf("5. μ’
λ£\n");
39 printf("μ ν: ");
40}
41
42int main(void) {
43 int choice;
44 double num1, num2, result;
45
46 printf("κ°λ¨ν κ³μ°κΈ° νλ‘κ·Έλ¨\n");
47
48 while (1) {
49 print_menu();
50
51 if (scanf("%d", &choice) != 1) {
52 printf("μλͺ»λ μ
λ ₯μ
λλ€.\n");
53 // μ
λ ₯ λ²νΌ λΉμ°κΈ°
54 while (getchar() != '\n');
55 continue;
56 }
57
58 if (choice == 5) {
59 printf("νλ‘κ·Έλ¨μ μ’
λ£ν©λλ€.\n");
60 break;
61 }
62
63 if (choice < 1 || choice > 5) {
64 printf("1-5 μ¬μ΄μ μ«μλ₯Ό μ
λ ₯νμΈμ.\n");
65 continue;
66 }
67
68 // λ μ«μ μ
λ ₯
69 printf("첫 λ²μ§Έ μ«μ: ");
70 if (scanf("%lf", &num1) != 1) {
71 printf("μλͺ»λ μ
λ ₯μ
λλ€.\n");
72 while (getchar() != '\n');
73 continue;
74 }
75
76 printf("λ λ²μ§Έ μ«μ: ");
77 if (scanf("%lf", &num2) != 1) {
78 printf("μλͺ»λ μ
λ ₯μ
λλ€.\n");
79 while (getchar() != '\n');
80 continue;
81 }
82
83 // κ³μ° μν
84 switch (choice) {
85 case 1:
86 result = add(num1, num2);
87 printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);
88 break;
89 case 2:
90 result = subtract(num1, num2);
91 printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);
92 break;
93 case 3:
94 result = multiply(num1, num2);
95 printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);
96 break;
97 case 4:
98 result = divide(num1, num2);
99 if (num2 != 0) {
100 printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);
101 }
102 break;
103 }
104 }
105
106 return 0;
107}