calculator.c

Download
c 108 lines 2.5 KB
  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}