본문 바로가기
프로그래밍/C

변수의 영역과 데이터 공유 - 예제 모음

by 길냥이 2025. 6. 17.
728x90

목차

  1. 고급 계산기 

 

1. 고급 계산기

사칙연산을 지원하는 계산기 프로그램을 만들어봅시다.

이때 각 계산은 함수를 이용해야 하며, 각 연산을 처리하는 함수가 사용된 횟수를 전역변수를 통해 기록하고 출력하세요.

 

입출력

연산을 입력하시오: 1+3
덧셈 연산은 총 1번 실행되었습니다.
연산의 결과 : 4
연산을 입력하시오: 19+129
덧셈 연산은 총 2번 실행되었습니다.
연산의 결과 : 148
연산을 입력하시오: 134-123
뺄셈 연산은 총 1번 실행되었습니다.
연산의 결과 : 11
연산을 입력하시오: 123*120
곱셈 연산은 총 1번 실행되었습니다.
연산의 결과 : 14760
연산을 입력하시오: 123/12
나눗셈 연산은 총 1번 실행되었습니다.
연산의 결과 : 10
연산을 입력하시오:

정답은 다음과 같아요.

 

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

//함수 선언 및 전역변수 선언(자동으로 0으로 초기화됨)
void add(int, int);
int add_count;

void sub(int, int);
int sub_count;

void mult(int, int);
int mult_count;

void div(int, int);
int div_count;

int main(void)
{
	int inp_a, inp_b;
	char arit;

	while (1) //무한반복
	{
		printf("연산을 입력하시오: ");
		scanf("%d%c%d", &inp_a, &arit, &inp_b); //입력자 간에 띄어쓰기가 없어야 합니다
		
		//입력된 연산자에 따라 연산 수행
		switch (arit)
		{
		case '+':
			add(inp_a, inp_b);
			break;
		case '-':
			sub(inp_a, inp_b);
			break;
		case '*':
			mult(inp_a, inp_b);
			break;
		case '/':
			div(inp_a, inp_b);
			break;
		}
	}

	return 0;
}

//함수 정의
//전역변수로 호출횟수 증가됨
void add(int a, int b)
{
	++add_count;
	printf("덧셈 연산은 총 %d번 실행되었습니다.\n", add_count);
	printf("연산의 결과 : %d\n", a + b);
}

void sub(int a, int b)
{
	++sub_count;
	printf("뺄셈 연산은 총 %d번 실행되었습니다.\n", sub_count);
	printf("연산의 결과 : %d\n", a - b);
}

void mult(int a, int b)
{
	++mult_count;
	printf("곱셈 연산은 총 %d번 실행되었습니다.\n", mult_count);
	printf("연산의 결과 : %d\n", a * b);
}

void div(int a, int b)
{
	++div_count;
	printf("나눗셈 연산은 총 %d번 실행되었습니다.\n", div_count);
	printf("연산의 결과 : %d\n", a / b);
}

 

728x90

'프로그래밍 > C' 카테고리의 다른 글

사용자 정의 자료형 - 예제 모음  (0) 2025.06.17
포인터 - 예제 모음  (0) 2025.06.17
동적 할당 메모리  (0) 2025.06.14
전처리 지시자  (0) 2025.06.14
파일 입출력 함수  (0) 2025.06.14