산술 연산자
+, -, *, /, %
%는 정수끼리만 사용하여 나머지를 구하는 데 사용한다.
/를 사용하여 정수끼리 연산하면 결과도 정수이다.
관계(비교)연산자
<, >, <=, >=, ==, !=
논리 연산자 and
논리값1 && 논리값2 -> 논리값
논리 연산자는 복잡한 조건을 표현하는 데 사용한다.
이때 두 값 모두 참일 때만 참인 것!
논리 연산자 or
논리값1 || 논리값2 -> 논리값
두 값 모두 거짓일 때만 거짓이다.
논리 연산자 or을 입력할 때는 Shift 키를 누른 채 \키를 누르면 |이 구현된다.
논리 연산자 not
!논리값2 -> 논리값
논리 연산자 not은 논리값2와 논리값의 참거짓이 반대이다.
논리값과 숫자의 관계
논리값을 숫자로 변환하면
거짓은 0,
참은 1로 변환된다.
하지만, 숫자를 논리값으로 변환하면
0은 거짓으로,
나머지는 참으로 변환된다.
#include<stdio.h> int main() { int age=15; printf("age가 %d라면 \n\n", age); printf("age>=20은 %d이다. \n", age>=20); printf("age<20은 %d이다. \n", age <20); }
조건 연산자
나이가 20세 이상이면 어른, 20세 미만이면 어린을 출력해보자.
#include<stdio.h> int main() { int age=30; age>=20 ? printf ("어른") : printf("어린"); }
입력한 초가 몇 분 몇 초인지 계산 프로그램
ex. 90초는 몇 분 몇 초인가?
#include<stdio.h> int main() { int input, m, s; printf("궁금한 초는?"); scanf("%d", &input); s = input % 60; m = input / 60; printf("%d초는 %d분 %d초입니다.", input, m, s); }
2월은 며칠까지 인지 구하는 프로그램
윤년의 조건
1) year이 400의 배수이면 무조건 윤년
2) year이 4의 배수이지만 100의 배수는 아니어야 윤년
#include<stdio.h> int main() { int year, day; printf("몇 년?"); scanf("%d", &year); day=( year%400==0 || year%4==0 && year%100!=0 ) ? 29:28; printf("%d년 2월은 %d일까지 있음", year, day); }
기본 연산자 주의할 점
수학과 다르게 연산자를 생략해서는 안된다.
ex) y = 2x; -> y = 2*x;
제곱 연산자는 없다.
ex) y = x^2; -> y=x*x;
()만 사용하여 우선순위를 변경한다.
ex) y = [c-(a+b)]/2; -> y = (c-(a+b))/2;
연산자 종류에 맞는 값을 사용해야 한다.
ex) x가 10이상 20미만
10 <= x < 20
-> 10 <= x && x < 20
n초는 몇 시간 몇 분 몇 초일까?
#include<stdio.h> int main() { int input, h, m, s; printf("궁금한 초는?"); scanf("%d", &input); h = input / 3600; m = input / 60 % 60; s = input % 60; printf("%d초는 %d시간 %d분 %d초입니다.", input, h, m, s); return 0; }