C언어 - switch_case문 계산기(함수사용)
#include <stdio.h>
int input_int();
int input_char();
int plus(int aa, int bb);
int sub(int aa, int bb);
int mul(int aa, int bb);
int div(int aa, int bb);
void disp(int num1, char ch, int num2, int result, float result_f);
void main()
{
int num1;
char ch;
int num2;
int result=0;
float result_f=0.f;
num1 = input_int();
ch = input_char();
num2 = input_int();
switch(ch)
{
case '+' : result = plus(num1, num2); break;
case '-' : result = sub(num1, num2); break;
case '*' : result = mul(num1, num2); break;
case '/' : result_f = div(num1, num2); break;
default : puts("잘못된 연산자입니다.");
}
//출력
disp(num1, ch, num2, result, result_f);
}
int input_int()
{
int num1;
printf("숫자를 입력해주세요\n");
scanf("%d", &num1);
return num1;
}
int input_char()
{
char ch;
fflush(stdin);
printf("연산자를 고르세요. (+ ,- ,* ,/)\n");
scanf("%c", &ch);
return ch;
}
int plus(int aa, int bb)
{
int result = aa+bb;
return result;
}
int sub(int aa, int bb)
{
int result = aa-bb;
return result;
}
int mul(int aa, int bb)
{
int result = aa*bb;
return result;
}
int div(int aa, int bb)
{
int result_f = (float)aa/bb;
return (float)result_f;
}
void disp(int num1, char ch, int num2, int result, float result_f)
{
if(ch =='+' || ch =='-' || ch =='*')
{
printf("두 수의 결과는 %d입니다.", result);
}
else if(ch == '/')
{
printf("두 수의 결과는 %f입니다.", result_f);
}
else
{
printf("잘못입력하셨습니다.");
}
}