이론 (1) : 수식과 연산자
자료형과 형식 지정자
int (정수) | %d |
long (정수) | %ld |
long long (정수) | %lld |
float (실수) | %f |
double (실수) | %lf |
char (문자) | %c |
생략?
나눗셈 연산자
int a = 7;
int b = 4;
printf("%d\n", a / b); // 출력 : 1
double x = 7.0;
double y = 4.0;
printf("%lf\n", x / y); // 출력 : 1.75
C
복사
증감 연산자
int x, y;
x = 1;
y = ++x; // y에 ++x 를 대입 -> 현재 x는 2
printf("x=%d y=%d \n", x, y); // x는 윗줄에서 +1 되었음
y = x++; // y에 x++ 를 대입 -> 현재 x는 2
printf("x=%d y=%d \n", x, y); // x에 이제 +1이 되었음 -> 현재 x는 3
return 0;
C
복사
int testcase;
scanf("%d", &testcase); // 몇 번 반복할지 입력을 받는다.
// 입력된 testcase가 0이 될 때까지 증감 연산자를 이용하여 1씩 감소하도록 한다.
// testcase가 0이 되면 반복을 종료한다.
while(testcase--){ /* ... */ }
C
복사
비트 연산자(&, |, ^, <<, >>, ~)
형변환
// 자동 형변환 (대입)
int a = 3.141592; // a == 3
// 자동 형변환 (연산)
int x = 10;
double y = 20.5;
// 출력 : 30.5
printf("%lf", x + y); // int < double 이므로 double 자료형으로 통일되어 계산함
// 명시적 형변환
double m = 1.3;
double n = 1.8;
int result = (int)m + (int)n;
// 출력 : 2
printf("%d", result); // 소수점 뒷자리를 다 버리고 계산함
C
복사
삼항 연산자
int a = 5;
int trueOrFalse = (a < 10) ? printf("a는 10보다 작음\n") : printf("a는 10보다 큼\n");
C
복사
문제 (1)
•
연산자를 잘 사용할 줄 아는가? (사칙연산) : 5분
•
2021년 중간고사 대비 문제 A 원의 면적 구하기 (소수점 출력, 연산) : 5분
이론 (2) : if-else문
if ( 조건 1 ) {
/* 조건 1이 참일 때 수행할 문장 */
}
else if ( 조건 2 ) {
/* 조건 2가 참일 때 수행할 문장 */
}
else {
/* 조건 1, 2 모두 거짓일 때 수행할 문장 */
}
C
복사
if ( 조건 1 ) {
if ( 조건 1-1 ) { /* ... */ }
else if ( 조건 1-2 ) { /* ... */ }
else { /* ... */ }
}
else if ( 조건 2 ) { /* ... */ }
else { /* ... */ }
C
복사
문제 (2)
•
단순 수학 연산 + if문
•
2021년 중간고사 대비 문제 E 마법의 수 찾아내기