01 산술연산자
연산자 |
기능 |
사용 |
+ |
좌우의 값을 더한다. |
a=b+c |
- |
왼쪽의 값에서 오른쪽의 값을 뺀다. |
a=b-c |
* |
좌우의 값을 곱한다. |
a=b*c |
/ |
왼쪽의 값을 오른쪽의 값으로 나눈다. |
a=b/c |
% |
왼쪽의 값을 오른쪽의 값으로 나눈 나머지를 구한다. |
a=b%c |
실습 4_01.cpp
#include <stdio.h>
int main() {
int a, b, add, sub, mul, div, mod;
printf("두 수 입력 : ");
scanf("%d %d", &a, &b);
add = a + b;
sub = a - b;
mul = a * b;
div = a / b;
mod = a % b;
printf("덧셈 = %d 뺄셈 = %d 곱셈 = %d 나눗셈 %d = %d 나머지 = %d", add, sub, mul, div, mod);
return 0;
}
실습 4_02.cpp
#include <stdio.h>
int main() {
int a, mul;
printf("도형 : ");
scanf("%d", &a);
printf("내각 : %d", (a-2)*180);
return 0;
}
실습 4_03.cpp
#include<stdio.h>
int main() {
int a, b;
printf("피제수 : ");
scanf("%d", &a);
printf("제수 : ");
scanf("%d", &b);
printf("나머지 : %d", a-(a/b)*b);
return 0;
}
02 비교연산자
연산자 |
의미 |
기능 |
사용 |
== |
같다. |
두 값이 동일하면 참 |
a==b |
!= |
같지 않다. |
두 값이 다르면 참 |
a!=b |
< |
보다 작다. |
왼쪽이 작으면 참 |
a< |
<= |
작거나 같다. |
왼쪽이 작거나 같으면 참 |
a<=b |
> |
보다 크다. |
왼쪽이 크면 참 |
a>b |
>= |
크거나 같다. |
왼쪽이 크거나 같으면 참 |
a>=b |
실습 4_04.cpp
#include<stdio.h>
int main() {
int a, b;
printf("두 수 입력 : ");
scanf("%d %d", &a, &b);
printf("%d == %d = %d\n", a, b, a == b);
printf("%d != %d = %d\n", a, b, a != b);
printf("%d < %d = %d\n", a, b, a < b);
printf("%d > %d = %d\n", a, b, a > b);
printf("%d <= %d = %d\n", a, b, a <= b);
printf("%d >= %d = %d\n", a, b, a >= b);
return 0;
}
실습 4_05.cpp
#include<stdio.h>
int main() {
char in;
printf("영문자 입력 : ");
scanf("%c", &in);
(in>96) ? printf("0",in) : printf("1",in);
return 0;
}
실습 4_06.cpp
#include<stdio.h>
int main () {
int a, b, c;
printf("반지름 : ");
scanf("%d", &a);
printf("x, y축 : ");
scanf("%d %d", &b, &c);
(b*b+c*c<=a*a) ? printf("1") : printf("0");
return 0;
}
03 논리연산자
연산자 |
기능 |
사용 |
&& |
두 값(조건)이 모두 참이면 참을 반환한다. |
a&&b |
|| |
두 값(조건)중의 하나라도 참이면 참을 반환한다. |
a||b |
! |
오른쪽의 값(조건)이 참이면 거짓을, 거짓이면 참을 변환한다. |
!a |
실습 4_07.cpp
#include<stdio.h>
int main() {
printf("1 AND 1 = %d\n", 1 && 1);
printf("1 AND 0 = %d\n", 1 && 0);
printf("0 AND 1 = %d\n", 0 && 1);
printf("0 AND 0 = %d\n", 0 && 0);
printf("1 OR 1 = %d\n", 1 || 1);
printf("1 OR 1 = %d\n", 1 || 0);
printf("1 OR 1 = %d\n", 0 || 1);
printf("1 OR 1 = %d\n", 0 || 0);
printf("NOT 1 = %d\n", !1);
printf("NOT 0 = %d\n", !0);
return 0;
}
실습 4_08.cpp
#include<stdio.h>
int main() {
int a, b, c;
printf(" 두 수 입력 : ");
scanf("%d %d", &a, &b);
printf("검사할 수 입력 : ");
scanf("%d", &c);
(a < c)&&(c < b)? printf("1") : printf("0");
return 0;
}
04 증감연산자
연산자 |
기능 |
사용 |
++ |
값을 1 증가시킨다. |
a++, ++a |
-- |
값을 1 감소시킨다. |
a--, --a |
실습 4_09.cpp
#include<stdio.h>
int main() {
int i;
i=3;
printf("전위형으로 썼을 때 : %d\n",++i);
i=3;
printf("후위형으로 썼을 때 : %d\n",i++);
return 0;
}
실습 4_10.cpp
#include<stdio.h>
int main() {
int a, b, c;
scanf("%d", &a); // 변수 a에 숫자 입력
b = ++a; c = a--;
printf("a = %d\tb = %d\tc = %d\n", a, b, c);
return 0;
}
실습 4_11.cpp
#include<stdio.h>
int main() {
int a, b, c;
scanf("%d", &a);
b = ++a + ++a;
c = a++ + a++;
printf("a = %d\tb = %d\tc = %d\n", a, b, c);
return 0;
}
05 비교연산자
연산자 |
기능 |
사용 |
= |
오른쪽의 값을 왼쪽의 변수에 대입한다. |
a=b |
+= |
왼쪽의 변수에 들어있는 값과 오른쪽 값을 더하여 왼쪽 변수에 대입한다. |
a+=b |
-= |
왼쪽의 변수에 들어있는 값과 오른쪽 값을 뺀 후 왼쪽 변수에 대입한다. |
a-=b |
*= |
왼쪽의 변수에 들어있는 값과 오른쪽 값을 곱하여 왼쪽 변수에 대입한다. |
a*=b |
/= |
왼쪽의 변수에 들어있는 값과 오른쪽 값을 나눈 왼쪽 변수에 대입한다. |
a/=b |
%= |
왼쪽의 변수에 들어있는 값과 오른쪽 값을 나눈 나머지를 왼쪽 변수에 대입한다. |
a%=b |
실습 4_12.cpp
#include<stdio.h>
int main() {
int a = 10, b = 5, c = 3;
a -= b; b *= a + c; c += b += a;
printf("a=%2d b=%2d c=%2d\n", a, b, c);
return 0;
}
실습 4_13.cpp
① a+=b;
② b-=c;
③ c/=d;
④ d*=e;
⑤ e=2;
06 조건연산자
실습 4_14.cpp
#include<stdio.h>
int main() {
int i, j;
scanf("%d %d", &i, &j); // 두 수 입력
(i>j) ? printf("%d가 %d보다 크다.\n", i, j) : printf("%d가 %d보다 크지 않다.\n", i, j);
return 0;
}
실습 4_15.cpp
#include<stdio.h>
int main() {
int a, b, c, max;
printf("첫째 수 입력 : "); scanf("%d", &a);
printf("둘째 수 입력 : "); scanf("%d", &b);
printf("셋째 수 입력 : "); scanf("%d", &c);
max = (a > b) ? a : b;
max = (max > c) ? max : c;
printf("가장 큰 수는 : %d\n", max);
return 0;
}
07 연산자와 우선순위
① 괄호 안의 내용이 우선 처리된다.
② 왼쪽에서 오른쪽으로 계산된다.
③ 단향 연산자가 이항 연산자보다 우선 계산된다.
④ 조건 연산자는 산술 연산자보다 나중에 계산된다.
그러나 위의 순서와 달리 우선적으로 처리되어야 하는 연산자가 있다. 이러한 연산자들의 우선순위는 다음 표와 같다.
우선순위 |
연산자의 종류 |
연산자 |
|
높다 |
단항연산자 |
!, ~, ++, --, -, *, & |
|
이항 연산자 |
승제산 |
*, /, % |
|
|
가감산 |
+, - |
|
|
이동 |
>>, << |
|
|
비교 |
<, <=, >, >=, ==, != |
|
|
비트연산 |
&, ^, | |
|
|
논리 |
&&, || |
|
낮다 |
조건 연산자 |
?, : |
|
대입 연산자 |
=, =+, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= |
실습 4_16.cpp
#include<stdio.h>
int main() {
int a, b, temp;
scanf("%d %d", &a, &b);
printf("원본 : %d %d\n",a,b);
temp= a;
a=b;
b=temp;
printf("교환 : %d %d",a,b);
return 0;
}
실습 4_17.cpp
#include<stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("원본 : %d %d\n", a, b);
a-=b;
b+=a;
a-=b;
a=-a;
printf("교환 : %d %d", a, b);
return 0;
}
'프로그래밍 > C' 카테고리의 다른 글
05-2. 제어문(반복문) (0) | 2017.09.07 |
---|---|
05-1. 제어문(분기문) (0) | 2017.09.07 |
03. 표준 입출력 함수 (0) | 2017.09.07 |
02. 자료형과 변수 (0) | 2017.09.07 |
01. C 언어의 기초 (0) | 2017.09.07 |