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 |