티스토리 뷰
사칙연산 계산기 프로그램을 만듭니다.
사칙연산 수식을 입력하면 그 결과를 출력하는 프로그램을 작성합니다.
단, 수식을 입력하는 함수와 사칙연산 함수를 매크로 함수로 작성합니다.
실행결과는 다음과 같습니다.
/*
실행결과
수식 입력(종료 Ctrl + Z) : 10 + 20
10 + 20 = 30
수식 입력(종료 Ctrl + Z) : 10 - 4
10 - 4 = 6
수식 입력(종료 Ctrl + Z) : 10 * 5
10 * 5 = 50
수식 입력(종료 Ctrl + Z) : 10 / 4
10 / 4 = 2
수식 입력(종료 Ctrl + Z) : ^Z
*/
다음은 제가 작성한 코드입니다.
수식을 입력하는 함수와 사칙연산 함수를 매크로 함수로 작성하라는데
당최 무슨 말인지 모르겠네요. 그냥 매크로 함수 사용법만 익히는 정도로 작성했습니다.
#include <stdio.h>
#define INPUT(number) scanf("%d", &number)
#define CALCULATER(x) x
int main(void)
{
while (1)
{
int firstNum, secondNum;
char sign;
printf("수식 입력(종료 Ctrl + Z) : ");
if (INPUT(firstNum) == EOF) break;
sign = getchar();
INPUT(secondNum);
getchar();
switch (sign)
{
case '+':
printf("%d + %d = %d\n", firstNum, secondNum, CALCULATER(firstNum + secondNum));
break;
case '-':
printf("%d - %d = %d\n", firstNum, secondNum, CALCULATER(firstNum - secondNum));
break;
case '*':
printf("%d * %d = %d\n", firstNum, secondNum, CALCULATER(firstNum * secondNum));
break;
case '/':
printf("%d / %d = %d\n", firstNum, secondNum, CALCULATER(firstNum / secondNum));
break;
}
}
return 0;
}
/*
실행결과
수식 입력(종료 Ctrl + Z) : 50-20
50 - 20 = 30
수식 입력(종료 Ctrl + Z) : 30+50
30 + 50 = 80
수식 입력(종료 Ctrl + Z) : 10*20
10 * 20 = 200
수식 입력(종료 Ctrl + Z) : 20/10
20 / 10 = 2
수식 입력(종료 Ctrl + Z) : ^Z
^Z
^Z
*/
VC++ 컴파일러는 Ctrl + Z를 세번 입력해줘야 scanf함수가 EOF를 반환해주었습니다.
'공부 일지 > C언어 공부 일지' 카테고리의 다른 글
전처리와 분할 컴파일 실전문제3 (0) | 2021.02.06 |
---|---|
전처리와 분할 컴파일 실전문제2 (0) | 2021.02.05 |
분할 컴파일 (0) | 2021.02.05 |
전처리와 분할 컴파일 (0) | 2021.02.04 |
파일 입출력 실전문제3 (0) | 2021.02.04 |