반응형
[8장 10번]
덧셈, 뺄셈, 곱셈, 나눗셈을 지원하는 계산기 프로그램을 작성하여 보자. 이번에는 각 연산들이 몇 번씩 계산되었는지를 기억하게 하자. 각 연산을 지원하는 함수들은 자신이 호출된 횟수를 화면에 출력한다.
a) 정적 지역 변수를 사용하여 프로그램을 작성하라.
b) 전역 변수를 사용하여 프로그램을 작성하라.
[풀이]
#include<stdio.h>
void sum(int, int);
void sub(int, int);
void mul(int, int);
void div(int, int);
int main() {
int num1, num2;
char cal;
while (1) {
printf("연산을 입력하시오(종료는 Ctrl+C) : ");
scanf("%d%c%d", &num1, &cal, &num2);
if (cal == '+') {
sum(num1, num2);
}
else if (cal == '-') {
sub(num1, num2);
}
else if (cal == '*') {
mul(num1, num2);
}
else if (cal == '/') {
div(num1, num2);
}
else {
printf("덧셈 + 뺄셈 - 곱셈 * 나눗셈 / \n");
continue;
}
}
}
void sum(int a, int b) {
static int sum_count = 0;
sum_count++;
printf("덧셈은 총 %d번 호출되었습니다\n", sum_count);
printf("연산 결과 : %d+%d=%d\n", a, b, a + b);
}
void sub(int a, int b) {
static int sub_count = 0;
sub_count++;
printf("뺄셈은 총 %d번 호출되었습니다\n", sub_count);
printf("연산 결과 : %d-%d=%d\n", a, b, a - b);
}
void mul(int a, int b) {
static int mul_count = 0;
mul_count++;
printf("곱셈은 총 %d번 호출되었습니다\n", mul_count);
printf("연산 결과 : %d*%d=%d\n", a, b, a * b);
}
void div(int a, int b) {
static int div_count = 0;
div_count++;
printf("나눗셈은 총 %d번 호출되었습니다\n", div_count);
printf("연산 결과 : %d/%d=%.2lf\n", a, b, (double)a / b);
}
반응형
'Solution_ > C언어 콘서트' 카테고리의 다른 글
[c언어 콘서트] 9장 2번 (역순 출력) (0) | 2018.09.30 |
---|---|
[c언어 콘서트] 9장 1번 (배열 요소들의 합) (0) | 2018.09.14 |
[c언어 콘서트] 8장 13번 (n의 3승 더하기) (0) | 2018.09.12 |
[c언어 콘서트] 8장 12번 (자리수 출력) (0) | 2018.09.12 |
[c언어 콘서트] 8장 5번 (소수 검사) (1) | 2018.09.12 |
댓글