ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 2장 15번
    C++ 2018. 10. 28. 02:59

    15. 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)의 정수 5칙 연산을 할 수 잇는 프로그램을 작성하라. 식은 다음과 같은 형식으로 입력된다. 정수와 연산자는 하나의 빈칸으로 분리된다.


    소스코드


    #include <iostream>
    #include <cstring>
    using namespace std;
    int add(int a, int b);
    int sub(int a, int b);
    int mul(int a, int b);
    int divi(int a, int b);
    int rem(int a, int b);
    int main() {
        char text[100];
        char *ptr = NULL;
        int left, right;
        for (;;) {
            cout << "? ";
            cin.getline(text, 100);
            left = atoi(strtok(text, " "));
            ptr = strtok(NULL, " ");
            right = atoi(strtok(NULL, " "));
            if (*ptr == '+') {
                cout << left << ' ' << ptr << ' ' << right << " = " << add(left, right) << endl;
            }
            else if (*ptr == '-') {
                cout << left << ' ' << ptr << ' ' << right << " = " << sub(left, right) << endl;
            }
            else if (*ptr == '*') {
                cout << left << ' ' << ptr << ' ' << right << " = " << mul(left, right) << endl;
            }
            else if (*ptr == '/') {
                cout << left << ' ' << ptr << ' ' << right << " = " << divi(left, right) << endl;
            }
            else if (*ptr == '%') {
                cout << left << ' ' << ptr << ' ' << right << " = " << rem(left, right) << endl;
            }
            else
                cout << "입력이상" << endl;
        }
    }
    int add(int a, int b) {
        return a + b;
    }
    int sub(int a, int b) {
        return a - b;
    }
    int mul(int a, int b) {
        return a * b;
    }
    int divi(int a, int b) {
        return a / b;
    }
    int rem(int a, int b) {
        return a % b;
    }


    실행결과


    strtok(text," "); 는 공백전까지 문자열을 잘라 주는 함수입니다.

    strtok(NULL," "); 는 다음 문자열을 자를 수 있게 해줍니다.

    atoi는 문자열을 숫자로 바꿔주는 함수입니다.


    연산자를 구분하여 함수를 호출 하였습니다.


    strtok 함수에 대한 정보 출처 : https://dojang.io/mod/page/view.php?id=376

    'C++' 카테고리의 다른 글

    명품 C++ 2장 Open Challenge  (0) 2018.10.28
    명품 C++ 2장 16번  (0) 2018.10.28
    명품 C++ 2장 14번  (0) 2018.10.28
    명품 C++ 2장 13번  (0) 2018.10.28
    명품 C++ 2장 12번  (0) 2018.10.28

    댓글

© 2018 TISTORY. All rights reserved.