목차
1. 수식 expression
피연산자들과 연산자의 조합
연산자 operator: 연산을 나타내는 기호(*)
피연산자 operand: 연산의 대상이 되는 것( 5, 8)
2. 연산자
C는 다양한 종류의 연산자를 제공한다. 제공하는 연산자가 많다는 것은 그만큼 데이터를 가공할 수 있는 범위가 넓다는 뜻이다. 이런 연산자들을 자유자재로 쓴다면, 복잡한 연산을 간단하게 처리할 수 있다.
마치, 가구를 만드는 장인이 다양한 도구와 방법을 활용해 여러 가구를 뚝딱뚝딱 만드는 것과 같다.
2-1. 산술연산자
+, -, *, /, %
덧셈 뺄셈, 곱셈, 나눗셈, 나머지와 관련된 연산자이다.
※ 주의점
사람에게 9/5를 계산하라고 하면 금방 1.8이라고 대답한다.
그런데 컴퓨터는 1이라고 대답한다.
왜냐하면, 피연산자가 모두 정수이기 때문에 결과도 정수로 나오기 때문이다.
즉 컴퓨터에서 정수 계산과 실수 계산은 완전히 다르다.
정수끼리 연산은 정수 하드웨어를, 실수끼리 연산은 실수 하드웨어를 쓰기 때문이다.
따라서 나눗셈에서는 피연산자 데이터형식을 더욱 신경써야 한다!
2-2 증감연산자
++, --
변수의 값을 1만큼 증가 또는 감소 시키는 연산자이다.
아래와 같이 쓸 수도 있다.
x++;
x = x+1;
x--;
x = x-1;
※ 주의점
순서를 유의해야 한다.
증감 연산자 | 값에 대한 해석 |
++x | 증가된 x |
x++ | 원래의 x(증가 안됨) |
--x | 감소된 x |
x-- | 원래의 x(감소 안됨) |
x= 1;
y= 2;
nextx_1 = ++x; // x의 값이 증가된 후에 사용, nextx_1=2, x=2
nextx_2 = x++; // 원래 x의 값을 사용, 이후에 x값 증가, nextx_2=2, x=3
nexty = y++; //원래 y값을 사용, 이후에 y값 증가, nexty=2, y=3
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int x;
x = 10;
printf("%d\n", x++); //10
printf("%d\n", x); //11
printf("%d\n", ++x); //12
printf("%d\n", x); /12
return 0;
}
3. 연습문제
3-1. 근무일수를 입력받아, 0월, 0주, 0일을 일했는지 계산하기
<결과>
<코드>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int work_days, year, month, week, day;
const int YEAR = 365;
const int WEEK = 7;
printf("근무 일수를 입력해주세요: ");
scanf("%d", &work_days);
year = work_days / YEAR;
week = work_days % YEAR / WEEK;
day = work_days % YEAR % WEEK;
printf("당신은 이 회사에 %d년 %d주 %d일 일하셨습니다.\n 고생하셨습니다. \n\n", year, week, day);
return 0;
}
3-2. 사용자로부터 돈과 물건 값을 입력받아, 잔돈 출력하는 자판기 만들기
(금액은 자유롭게 설정)
<결과>
<코드>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int money, price, change, change_1000, change_100, change_10;
const int TYPE1000 = 1000;
const int TYPE100 = 100;
const int TYPE10 = 10;
printf("물건 값은 얼마입니까:______\b\b\b\b\b");
scanf("%d", &price);
printf("얼마를 투입하시겠습니까:______\b\b\b\b\b");
scanf("%d", &money);
change = money - price;
change_1000 = change / 1000;
change_100 = change % 1000 / 100;
change_10 = change % 1000 % 100 /10;
printf("잔돈은 1000원짜리 %d개, 100원짜리 %d개, 10원짜리 %d개입니다", change_1000, change_100, change_10);
return 0;
}
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
십진수를 N진수로 바꾸는 방법 (0) | 2023.03.21 |
---|---|
C언어 13차시 대입 연산자, 관계 연산자, 비트 연산자, 비트 이동 연산자 (0) | 2023.03.21 |
C언어 11차시 변수와 자료형 연습문제 (0) | 2023.03.21 |
C언어 10차시 문자형, character constant, 아스키코드, escape sequence, 제어문자 (0) | 2023.03.21 |
C언어 9차시 부동 소수형 연습문제 (0) | 2023.03.21 |