| 연산자 | 사용 | 계산식 | 결과 |
|---|---|---|---|
| + | 가산 | i = 3 + 2 | 5 |
| - | 감산 | i = 3 - 2 | 1 |
| * | 곱셈 | i = 3 * 2 | 6 |
| / | 나눗셈 | i = 3 / 2 | 1 |
| % | 나머지 | i = 3 % 2 | 1 |
1. 나눗셈과 나머지
#include <stdio.h>
#define SECOND_PER_MINUTE 60
int main()
{
int input = 1000;
int minute = input / SECOND_PER_MINUTE;
int second = input % SECOND_PER_MINUTE;
printf("%d초는 %d분 %d초입니다.\n", input, minute, second);
return 0;
}
// 실행결과: 1000초는 16분 40초입니다.
2. 증감 연산자
#include <stdio.h>
int main()
{
int x = 0;
printf("현재의 x는 %d입니다.\n", x); // 현재의 x는 0입니다.
x++;
printf("현재의 x는 %d입니다.\n", x); // 현재의 x는 1입니다.
printf("현재의 x는 %d입니다.\n", x--); // 현재의 x는 1입니다.
printf("현재의 x는 %d입니다.\n", x); // 현재의 x는 0입니다.
return 0;
}
++x --xint x = 0;
printf("현재의 x는 %d입니다.\n",--x);
👉🏻 실행결과 : 현재의 x는 -1입니다.
x++ x--int x = 0;
printf("현재의 x는 %d입니다.\n",x--);
👉🏻 실행결과 : 현재의 x는 0입니다.
printf("현재의 x는 %d입니다.\n", x);
👉🏻 실행결과 : 현재의 x는 -1입니다.
#include <stdio.h>
int main()
{
int x = 100;
printf("현재 x는 %d입니다.\n", x); //현재의 x는 100입니다.
x += 50; // x = x + 50;
printf("현재 x는 %d입니다.\n", x); //현재 x는 150입니다.
x -= 50; // x = x - 50;
printf("현재 x는 %d입니다.\n", x); //현재의 x는 100입니다.
x *= 50; // x = x * 50;
printf("현재 x는 %d입니다.\n", x); //현재의 x는 5000입니다.
x /= 50; // x = x / 50;
printf("현재 x는 %d입니다.\n", x); //현재의 x는 100입니다.
x %= 3; // x = x % 3;
printf("현재 x는 %d입니다.\n", x); //현재의 x는 1입니다.
return 0;
}
증감 연산자나 복합 대입 연산자는 코드의 길이를 줄이기에 용이하다~!
#include <stdio.h>
int main()
{
int x = 50, y = 30;
printf("x와 y가 같은가? %d\n", x == y); // 0 false
// x와 y가 같은 값을 가지고 있는가?
// x = y -> x와 y가 같은 상황 그 자체를 의미
// x == y -> true, x와 y가 같은 값을 가지고 있는 것
printf("x와 y가 다른가? %d\n", x != y); // 1 true
printf("x가 y보다 큰가? %d\n", x > y); // 1 true
printf("x가 y보다 작은가? %d\n", x < y); // 1 true
printf("x에 y값을 넣으면? %d\n", x = y); // 30
// x = y -> x 변수에 y의 값을 대입한다.
// 30(y값)이 x에 할당되고, 그 값이 %d에 출력이 됨
// (x=y) 해당 수식을 해결한 뒤에 가장 왼쪽에 있는 변수가 %d로 출력된다.
return 0;
}
| 연산자 | 의미 |
|---|---|
| > | 큰 값 |
| >= | 크거나 같다(이상) |
| < | 작은 값 |
| <= | 작거나 같다(이하) |
| == | 같은 값 |
| != | 다른 값 |
#include <stdio.h>
int mian()
{
int x = 50, y = 30;
printf("x가 y보다 크고 y는 40미만입니까? %d\n", (x > y) && (y < 40)); // 1 true
printf("x가 y보다 작거나 혹은 x가 30입니까? %d\n", (x < y) || (x = 30)); // 1 true
printf("x가 50이 아닙니까? %d\n", x != 50); // 0 false
return 0;
}
| 연산자 | 의미 |
|---|---|
| && | 모두 참인 경우에만 참 |
| || | 둘 중 하나라도 참이면 참 |
| ! | 결과 반전 |
#include <stdio.h>
int main()
{
int x = -50, y = 30;
int absoluteX = (x > 0) ? x : -x;
// x가 0보다 크다면 x 자체를 반환
// x가 0보다 작다면 -(-x) --> +x
// 즉, 항상 절댓값을 반환
int max = (x > y) ? x : y;
int min = (x < y) ? x : y;
printf("x의 절댓값은 %d입니다.\n", absoluteX); // 50
printf("x와 y 중 최댓값은 %d입니다.\n", max); // -30
printf("x와 y 중 최솟값은 %d입니다.\n", min); // -50
return 0;
}
(Boolean expression) ? Ture part : False Part;
power의 약자로써 거듭 제곱의 연산을 지원해주는 함수
기존에 존재하는 라이브러리를 사용해서 쉽게 사용 가능
연산자의 종류는 아니지만 자주 사용되는 거듭 제곱 연산 함수이다.
#include <stdio.h>
#include <math.h> // pow(), abs()
int main()
{
double x = pow(2.0, 20.0);
printf("2의 20제곱은 %.0f입니다.\n", x);
return 0;
}
// 실행결과: 2의 20제곱은 1048576입니다.
pow(a, b)
좌항의 a가 우측의 b만큼 거듭제곱이 이루어진다.
%.0f -> 실수 서식 지정자
소수점 0번째 자리까지 출력 = 정수부분만 출력됨