Phase 1 · C언어 입문

연산자와 계산

C언어로 데이터를 계산하고 처리하는 방법. 이전 단계에서 배운 변수와 자료형을 활용하여 데이터를 계산하고 비교하고 판단하는 방법을 배웁니다. 조건문과 반복문, 알고리즘의 기본이 되는 중요한 문법입니다.

예상 학습 시간 : 100분
난이도 : ★★☆☆☆ 기초
사전 지식 : Step 02 변수와 자료형
다음 단계 : 입력과 출력
01

학습 목표

이번 단계를 완료하면 다음 내용을 이해하고 활용할 수 있습니다.

1
산술 연산자를 사용할 수 있습니다.
2
대입 연산자를 이해할 수 있습니다.
3
비교 연산자를 사용할 수 있습니다.
4
논리 연산자를 사용할 수 있습니다.
5
증감 연산자를 사용할 수 있습니다.
6
복합 대입 연산자를 사용할 수 있습니다.
7
연산자 우선순위를 이해할 수 있습니다.
8
정수와 실수의 계산 차이를 이해할 수 있습니다.
9
형 변환의 기본 개념을 이해할 수 있습니다.
10
간단한 계산 프로그램을 만들 수 있습니다.
02

연산자란?

연산자(Operator)란 데이터를 계산하거나 비교하기 위해 사용하는 기호입니다.

예를 들어, 10 + 20 에서:

  • 10, 20 → 피연산자 (Operand)
  • +연산자 (Operator)

결과는 30이 됩니다.

03

산술 연산자

가장 기본적인 계산을 수행하는 연산자입니다.

연산자 의미 예제 결과
+덧셈10 + 313
-뺄셈10 - 37
*곱셈10 * 330
/나눗셈10 / 33
%나머지10 % 31

덧셈과 뺄셈

⚙️ C
#include <stdio.h>
int main() {
    int a = 20;
    int b = 10;
    printf("덧셈 : %d\n", a + b);
    printf("뺄셈 : %d\n", a - b);
    return 0;
}

곱셈과 나눗셈

⚙️ C
#include <stdio.h>
int main() {
    int a = 20;
    int b = 10;
    printf("곱셈 : %d\n", a * b);
    printf("나눗셈 : %d\n", a / b);
    return 0;
}
04

나눗셈에서 주의할 점

정수 나눗셈의 함정

C언어에서 정수와 정수를 나누면 정수 결과가 나옵니다. 소수점 이하는 완전히 버려집니다.

⚙️ C
int result;
result = 10 / 3;
printf("%d\n", result); // 결과: 3 (3.333...이 아님)

실수 결과를 얻으려면?

피연산자 중 하나 이상이 실수여야 합니다.

⚙️ C
double result;
result = 10.0 / 3.0;
printf("%.2lf\n", result); // 결과: 3.33
05

나머지 연산자 %

%는 나눗셈의 나머지를 구합니다.

⚙️ C
printf("%d\n", 10 % 3); // 결과: 1 (10 ÷ 3 = 3 ... 1)
나머지 연산자의 활용

나머지 연산자는 프로그래밍에서 매우 많이 사용됩니다. 대표적으로 숫자가 홀수인지 짝수인지 판별할 때 유용합니다.

  • number % 2 == 0 이면 짝수
  • number % 2 == 1 이면 홀수
06

대입 연산자와 복합 대입 연산자

대입 연산자 =

=같다라는 의미가 아닙니다. C언어에서는 오른쪽의 값을 왼쪽 변수에 저장한다는 의미입니다.

⚙️ C
int score = 80;
score = 95; // score의 값이 95로 바뀜

복합 대입 연산자

score = score + 10; 같은 코드를 짧게 표현할 수 있습니다.

표현 동일한 의미
a += 10a = a + 10
a -= 10a = a - 10
a *= 10a = a * 10
a /= 10a = a / 10
a %= 10a = a % 10
07

증감 연산자

변수의 값을 1 증가시키거나 1 감소시킬 때 사용합니다.

⚙️ C
int count = 10;
count++; // 11이 됨
count--; // 다시 10이 됨
++와 --의 전위/후위 차이

count++++count는 모두 값을 1 증가시키지만, 다른 연산과 함께 쓰일 때 차이가 있습니다.

후위 증가
int a = 10, b;
b = a++;
// b에 먼저 10이 저장된 후 a가 11이 됨
전위 증가
int a = 10, b;
b = ++a;
// a가 먼저 11이 된 후 b에 11이 저장됨
08

비교 연산자

두 값을 비교할 때 사용합니다. 맞으면 1(참), 틀리면 0(거짓)을 반환합니다.

연산자 의미
==같다
!=같지 않다
>크다
<작다
>=크거나 같다
<=작거나 같다
= 와 == 의 차이

초보자가 가장 많이 하는 실수입니다!

  • = : 값을 변수에 저장(대입)합니다. (예: score = 100;)
  • == : 두 값이 같은지 비교합니다. (예: score == 100)
09

논리 연산자

여러 조건을 동시에 처리할 때 사용합니다.

연산자 이름 의미
&&AND모두 참이어야 참 (그리고)
||OR하나라도 참이면 참 (또는)
!NOT참과 거짓을 반대로 바꿈

AND (&&)와 OR (||)

⚙️ C
age >= 20 && age <= 60   // 나이가 20세 이상"이고" 60세 이하인가?
age < 20 || age > 60   // 20세 미만"이거나" 60세 초과인가?
10

연산자 우선순위

수학에서 곱셈/나눗셈을 먼저 하는 것처럼 C언어도 우선순위가 있습니다.

⚙️ C
result = 2 + 3 * 4; // 결과: 14 (곱셈 먼저)
괄호의 적극적인 사용 권장

우선순위가 헷갈리거나 의도를 명확히 하고 싶다면 괄호 ()를 적극적으로 사용하세요!

result = (2 + 3) * 4; // 결과: 20
11

형 변환 (Type Casting)

서로 다른 자료형을 계산할 때 자료형을 강제로 변환해야 할 때가 있습니다.

⚙️ C
int a = 10;
int b = 3;
double result;

result = a / b; // 3이 저장됨 (정수 나눗셈이기 때문)

// 형 변환 사용
result = (double)a / b; // a를 잠시 실수로 변환하여 계산 -> 3.333333 저장
12

실습 문제

🧪
Practice 01
사칙연산 계산기

두 숫자를 변수에 저장하고 사칙연산과 나머지를 구합니다.

⚙️ C
#include <stdio.h>
int main() {
    int a = 20;
    int b = 5;
    printf("첫 번째 숫자 : %d\n", a);
    printf("두 번째 숫자 : %d\n", b);
    
    printf("덧셈 : %d\n", a + b);
    printf("뺄셈 : %d\n", a - b);
    printf("곱셈 : %d\n", a * b);
    printf("나눗셈 : %d\n", a / b);
    printf("나머지 : %d\n", a % b);
    return 0;
}
🧪
Practice 02
쇼핑몰 할인 계산

상품 가격이 50,000원이고 20% 할인한다고 가정해 봅니다.

⚙️ C
#include <stdio.h>
int main() {
    int price = 50000;
    int discount = 20;
    int discount_price;
    int final_price;

    discount_price = price * discount / 100;
    final_price = price - discount_price;

    printf("상품 가격 : %d\n", price);
    printf("할인율 : %d%%\n", discount); // % 기호 출력은 %%
    printf("할인 금액 : %d\n", discount_price);
    printf("최종 가격 : %d\n", final_price);
    return 0;
}
🧪
Practice 03
시간 변환 & BMI 계산

시간 변환 프로그램

총 초(seconds)를 시간, 분, 초로 변환합니다.

⚙️ C
int total_seconds = 3725;
int hour = total_seconds / 3600;
int minute = (total_seconds % 3600) / 60;
int second = total_seconds % 60;

BMI 계산 프로그램

BMI = 몸무게(kg) / 키(m)^2 공식 이용

⚙️ C
double height = 175.0;
double weight = 70.0;
double height_m = height / 100.0; // cm를 m로 변환
double bmi = weight / (height_m * height_m);
13

STEP 03 최종 프로젝트

🚀 Mission

나만의 생활 계산기

지금까지 배운 연산자를 활용하여 생활 속 계산 프로그램을 만들어 봅니다.

구현 기능

  • 사칙연산: 합, 차, 곱, 몫, 나머지
  • 성적 계산: 국어, 영어, 수학 총점과 평균
  • 금액 계산: 상품가격, 할인율, 할인금액, 최종가격
  • 시간 계산: 총 초를 입력받아 시간, 분, 초로 변환
다음 단계를 위한 힌트

현재까지는 프로그램 코드 안에 값을 직접 입력했습니다 (예: int price = 50000;).
다음 단계에서는 프로그램이 실행된 후 사용자가 키보드로 원하는 숫자를 직접 입력받는 방법을 배우게 됩니다!

14

STEP 03 완료 체크리스트

+, -, *, /, % 연산자를 사용할 수 있다.
대입 연산자 = 를 이해한다.
= 와 == 의 차이를 명확히 이해한다.
+=, -=, *=, /= 를 사용할 수 있다.
++, -- 증감 연산자를 이해한다.
비교 연산자와 논리 연산자(&&, ||, !)를 안다.
연산자 우선순위를 이해하고 괄호를 사용할 수 있다.
정수 나눗셈의 특징과 형 변환(Type Casting)을 이해한다.
실생활 데이터를 이용한 다양한 계산 프로그램을 만들 수 있다.
+ - * / %

산술 연산

== != > < >= <=

비교 연산

&& || !

논리 연산

++ --

증감 연산

+= -= *= /= %=

복합 대입

(double)

형 변환

이전 : Step 02 Step 04 : 입력과 출력