C언어에서 산술 연산자는 사칙연산과 나머지(%
)구하기를 말합니다. 나눗셈의 경우 정수에서 정수를 나눠도 실수인 답이 있으므로 자료형 선택에 유의해야 합니다.
C언어 산술 연산자
산술 연산자는 덧셈(+
), 뺄셈(-
), 곱셈(*
), 나눗셈(/
) 그리고 나머지(%
)를 말합니다. 나머지란 나눗셈에서 몫을 제외한 나머지를 의미합니다.
연산자 | 예제 | 의미 |
---|---|---|
+ |
x + y |
덧셈 |
- |
x - y |
뺄셈 |
* |
x * y |
곱셈 |
/ |
x / y |
나눗셈 |
% |
x % y |
나머지 |
자료형이 정수형, 실수형이냐에 따라서 연산 결과가 달라질 수 있습니다. 정수는 -3
, -2
, -1
과 같은 음의 정수, 0
그리고 +1
, +2
, +3
과 같은 양의 정수를 말합니다.
실수는 정수 보다 큰 범위의 수입니다. 허수를 제외한 유한 소수(0.3
), 유리수(1/3
), 무리수(√2
), 순환 소수(0.3333...
) 등이 모두 포함된 범위입니다.
덧셈 연산자
C언어 덧셈은 +
기호를 사용해서 연산합니다.
#include<stdio.h>
void main() {
int x = 2; //정수 자료형(int) 조건으로 변수 x를 생성하고 정수 2를 대입했습니다.
int y = 3; //정수 자료형(int) 조건으로 변수 y를 생성하고 정수 3을 대입했습니다.
int z; //정수 자료형(int) 조건으로 변수 z를 생성했지만, 변수값은 지정하지 않았습니다.
z = x + y; //변수 z에 변수 x와 변수 y의 값을 더해서 저장합니다.
printf("%d", z); //정수형 자료형(%d)으로 변수 z에 저장된 변수값(x + y)을 출력합니다.
}
결과
5
소수와 같은 실수 범위를 더할 경우 변수 선언시 자료형을 실수(float
)로 변환하고, 출력시(printf
) 자료형도 실수(%f
)로 변환해야 합니다. 또한 실수의 경우 출력시 기본 소수 여섯자릿수까지 출력됩니다. 적절한 자릿수 조절이 필요합니다.
#include<stdio.h>
void main() {
float x = 0.3; //실수형(float) 자료형 조건으로 변수 x를 생성하고, 변수값에 실수 0.3를 대입합니다.
float y = 4.2; //실수형(float) 자료형 조건으로 변수 y를 생성하고, 변수값에 실수 4.2를 대입합니다.
float z; //실수형(float) 자료형 조건으로 변수 z를 생성하지만, 변수값은 비워둡니다.
z = x + y; //변수 z에 변수 x와 변수 y의 합계를 삽입합니다.
printf("%2.1f", z); //실수형(float) 자료(%f)로 변수 z에 삽입된 값(x + y)을 출력합니다. 출력시 자릿수는 2.1로 결정되며 2는 전체 자릿수 개수 0.1은 소수 자릿수의 개수를 정의합니다.
}
결과
4.5
뺄셈 연산자
C언어 뺄셈은 -
기호를 사용해서 연산합니다.
#include<stdio.h>
void main() {
int x = 2; //정수 자료형(int) 조건으로 변수 x를 생성하고 정수 2를 대입했습니다.
int y = 3; //정수 자료형(int) 조건으로 변수 y를 생성하고 정수 3을 대입했습니다.
int z; //정수 자료형(int) 조건으로 변수 z를 생성했지만, 변수값은 지정하지 않았습니다.
z = x - y; //변수 z에 변수 x에서 변수 y를 뺀 값을 저장합니다.
printf("%d", z); //정수형 자료형(%d)으로 변수 z에 저장된 변수값(x - y)을 출력합니다.
}
결과
-1
곱셈 연산자
C언어 곱셈은 *
기호를 사용해서 연산합니다.
#include<stdio.h>
void main() {
int x = 3;
int y = 4;
int z;
z = x * y;
printf("%d", z);
}
결과
12
나눗셈 연산자
C언어 나눗셈에서는 /
기호를 사용합니다. 나눗셈의 경우 정수 / 정수 = 실수
형태인 경우가 있을 수 있습니다. 그럴 경우 자료형을 실수형으로 적절히 변환해야 합니다. 예를 들어 5 / 2 = 2.5
수식에서 5
와 2
는 정수이지만 결과인 2.5
는 소수이므로 실수입니다. 아래와 같이 예제를 짤 경우 답은 2.5
가 아닌 2
로 정수 형태로 출력됩니다. 이 경우는 나눗셈이 아니라 몫을 구한 경우라고 볼 수 있습니다.
#include<stdio.h>
void main() {
int x = 5; //정수 자료형(int)으로 변수 x를 지정하고, 변수값 5를 대입합니다.
int y = 2; //정수 자료형(int)으로 변수 y를 지정하고, 변수값 2를 대입합니다.
int z; //정수 자료형(int)으로 변수 z를 지정하고, 변수값은 비워둡니다.
z = x / y; //변수 z에 변수 x를 변수 y로 나눈 값을 저장합니다.
printf("%d", z); //정수 자료형(%d)으로 변수 z에 삽입된 변수값(x / y)을 출력합니다.
}
결과
2
몫이 아닌 나눗셈의 정확한 연산을 구해야 할 경우 변수 선언시 자료형을 실수형(float
)로 변경해야 하고, 출력 함수에서도 자료형을 실수형(%f
)로 변경해줘야 합니다.
#include<stdio.h>
void main() {
float x = 5; //실수 자료형(float)으로 변수 x를 지정하고, 변수값 5를 대입합니다.
float y = 2; //실수 자료형(float)으로 변수 y를 지정하고, 변수값 2를 대입합니다.
float z; //실수 자료형(float)으로 변수 z를 지정하고, 변수값은 비워둡니다.
z = x / y; //변수 z에 변수 x를 변수 y로 나눈 값을 저장합니다.
printf("%2.1f", z); //실수 자료형(%f)으로 변수 z에 삽입된 변수값(x / y)을 출력합니다. 자릿수는 2.1로 숫자 2는 총 자리수를 의미하며 소수 자릿수 0.1은 소수 한 자리를 의미합니다.
}
결과
2.5
나머지 연산자
C언어 나머지 연산은 %
기호를 사용합니다. 5
에서 3
을 나누면 몫은 1
이고 나머지는 2
입니다.
#include<stdio.h>
void main() {
int x = 5;
int y = 3;
int z;
z = x % y;
printf("%d", z);
}
결과
2
나머지 연산자는 홀수/짝수를 구분할 때 자주 사용됩니다.