프로그래밍언어/C언어[초급]

[C언어][초급] Chapter15. 산술 연산자 – 사칙연산을 코드로 표현해보자

about_IT 2025. 4. 16. 19:55

프로그래밍에서도 덧셈, 뺄셈, 곱셈, 나눗셈 같은 기본적인 수학 계산은 자주 사용됩니다.
C언어에서는 이러한 계산을 수행하기 위해 **산술 연산자(Arithmetic Operators)**를 제공합니다.

이번 글에서는 산술 연산자의 종류와 사용법, 그리고 주의할 점까지 초보자가 꼭 알아야 할 내용을 정리해볼게요.


● 산술 연산자란?

산술 연산자는 숫자끼리의 계산을 수행하는 기호입니다.
C언어에서 사용하는 대표적인 산술 연산자는 다음과 같습니다:


연산자 의미 예시  코드결과
+ 덧셈 3 + 2 5
- 뺄셈 5 - 1 4
* 곱셈 4 * 2 8
/ 나눗셈 10 / 2 5
% 나머지 7 % 3 1

● 각 연산자 간단 설명

▸ 덧셈 +, 뺄셈 -

가장 기본적인 연산으로, 정수형, 실수형 모두 사용 가능합니다.

int a = 3 + 4;     // a = 7
float b = 5.5 - 2; // b = 3.5

 

▸ 곱셈 *

별표 기호 *는 곱셈을 나타냅니다.

int x = 6 * 3;   // x = 18

 

▸ 나눗셈 /

정수형끼리 나누면 소수점 이하는 버려지고,
실수형이 하나라도 포함되면 소수점까지 계산됩니다.

int a = 5 / 2;        // 결과: 2 (정수 나눗셈)
float b = 5.0 / 2;    // 결과: 2.5

 

정수 나눗셈을 실수처럼 계산하고 싶을 땐 형 변환이 필요합니다.

 

▸ 나머지 %

정수 나눗셈의 나머지를 계산할 때 사용합니다.
실수형에는 사용할 수 없습니다.

int r = 10 % 3;  // r = 1

● 주의할 점

정수끼리의 나눗셈은 소수점 이하가 잘립니다.

int a = 7 / 2;      // 결과: 3
 

 

실수에는 % 연산자를 사용할 수 없습니다.

float x = 7.5;
float y = 2.0;
// x % y;  → 오류!

 

0으로 나누면 오류가 납니다.

int a = 10 / 0;     // 런타임 에러 (프로그램 강제 종료)

● 연산자 우선순위

여러 연산자가 함께 있을 때는 곱셈(*), 나눗셈(/), 나머지(%)가 덧셈(+), 뺄셈(-)보다 먼저 계산됩니다.

int result = 3 + 4 * 2;  // 결과: 11 (4*2 먼저 계산됨)

괄호를 사용하면 우선순위를 바꿀 수 있어요.

int result = (3 + 4) * 2; // 결과: 14

 


 

산술 연산자는 C언어에서 가장 자주 쓰이는 기본 기능 중 하나입니다.
덧셈부터 나머지 연산까지 기호가 간단하고 직관적이지만, 자료형이나 계산 순서에 따라 다르게 동작할 수 있기 때문에 정확한 이해가 필요합니다.

 


실습 문제

아래 문제는 직접 코드를 작성해보고, 실행 결과를 확인한 후 스스로 정답을 유추해보는 형태입니다.

정답은 바로 아래에서 확인할 수 있습니다.

 

문제 1

정수형 변수 a = 7, b = 3이 있을 때, a + b, a - b, a * b, a / b, a % b의 결과를 출력하는 코드를 작성하세요.

 

문제 2

실수형 변수 x = 5.0, y = 2.0일 때, x / y의 결과를 소수점 둘째 자리까지 출력하세요.

 

문제 3

다음 코드의 출력 결과를 예측해보세요.

int result = 3 + 4 * 2;
printf("%d\n", result);

 

문제 4

아래 코드에서 괄호를 추가하여 출력 결과가 14가 되도록 수정하세요.

int result = 3 + 4 * 2;

 

문제 5

다음 중 오류가 발생하는 코드를 모두 고르세요.

A. int a = 10 % 3;
B. float b = 5.0 / 2;
C. float c = 7.5 % 2;
D. int d = 5 / 0;







▶ 정답 확인하기

정답 1

int a = 7, b = 3;
printf("덧셈: %d\n", a + b);  // 10
printf("뺄셈: %d\n", a - b);  // 4
printf("곱셈: %d\n", a * b);  // 21
printf("나눗셈: %d\n", a / b);  // 2
printf("나머지: %d\n", a % b);  // 1

 

정답 2

float x = 5.0, y = 2.0;
printf("결과: %.2f\n", x / y);  // 출력: 2.50

 

정답 3

출력 결과: 11
→ 4 * 2 = 8 → 3 + 8 = 11 (연산자 우선순위 때문)

 

정답 4

int result = (3 + 4) * 2;  // 결과: 14

 

정답 5

정답: C, D

  • C: %는 정수형에서만 사용 가능 → float % int는 오류
  • D: 0으로 나누는 연산은 런타임 에러 발생