728x90

recursive call (재귀 호출)을 사용한 사칙연산 계산기.

   ▶ 함수내부에서 함수가 자기 자신을 다시 호출하는 행위를 의미

#include <stdio.h>

double add(double,double);
double sub(double,double);
double mul(double,double);
double div(double,double);
double calculator(double,double,double (*func)(double,double));


int main() {
    double (*calc)(double,double) =NULL;
    double result =0;
    double num1 = 0, num2 = 0;
    char oper;

    printf("숫자 기호 숫자 입력 >> ");
    scanf("%lf %c %lf",&num1,&oper,&num2);

    switch (oper)
    {
    case '+':
        calc = add;
        break;
    case '-':
        calc = sub;
        break;
    case '*':
        calc = mul;
        break;
    case '/':
        calc = div;
        break;
    
    default:
    puts("사칙 연산만 부탁드립니다!");
    } //end switch

    result = calculator(num1, num2, calc);
    printf("연산의 결과는 %.2lf입니다.\n", result);
    return 0;
}

double add (double num1, double num2){
    return num1+num2;
}
double sub (double num1, double num2){
    return num1-num2;
}
double mul (double num1, double num2){
    return num1*num2;
}
double div (double num1, double num2){
    return num1/num2;
}
double calculator(double num1, double num2, double (*func)(double, double)){
    return func(num1,num2);
}

'Algorithm & Problem solving' 카테고리의 다른 글

For Loop in C  (0) 2021.07.14
Compare the Triplets  (0) 2021.07.06
Conditional Statements in C  (0) 2021.07.06
Simple Array Sum  (0) 2021.07.05

+ Recent posts