C

[C]switch-case문을 이용한 사칙연산하는 프로그램

Geuny 2011. 9. 16. 13:48


#include <stdio.h>

int Add(int a, int b);
int Min(int a, int b);
int Mul(int a, int b);
int Div(int a, int b);

void main()
{

int num1,num2;
int result=0;
char op;

printf("숫자1을 입력하시오 : ");
scanf("%d",&num1);

fflush(stdin); // 버퍼를 비워주는 함수
/*
위에서 scanf()에서 숫자를 입력 후 엔터를 쳐야 다음 명령을 수행하는데 이때 엔터키 값까지 버퍼에 입력이 된다. 그래서 이 문제를 해결하기 위해 버퍼를 비워주는 무언가가 필요하다. 그 무언가가 버퍼를 비워주는 역할을 하는 함수, fflush()를 사용함으로써 이 문제를 해결하였다.
*/

 printf("연산자를 입력하시오 : ");
 scanf("%c", &op);

 printf("숫자2을 입력하시오 : ");
 scanf("%d",&num2);
 

 switch(op)
 {
  case '+':
   result=Add(num1, num2);  
   break;
  case '-':
   result=Min(num1, num2);
   break;
  case '*':
   result=Mul(num1, num2);
  break;
  case '/':
   result=Div(num1, num2);
   break;
  default:
   break;
 }
/*
switch-case문에서는
case 조건:
        수행할 문장;
        break;
이런 식으로 수행할 문장 후에는 반드시 이 조건을 빠져나가야 하는 break 키워드를 사용하여야 한다. 만약 break를 선언하지 않았다면 해당 조건문 이후의 모든 조건, 그 조건에 대한 참이든 거짓이든 상관없이 그 이후의 모든 문장들을 전부 수행한다.
*/

 printf("%d %c %d = %d\n",num1,op,num2,result);
 

}

int Add(int a, int b)
{
 return a+b;
}

int Min(int a, int b)
{
 return a-b;
}
int Mul(int a, int b)
{
 return a*b;
}
int Div(int a, int b)
{
 return a/b;
}