728x90
5.3 더하기, 빼기, 부호 연산자들
#include <stdio.h>
int main()
{
int income, salary, bonus;
income = salary = bonus = 100; // triple assignment. bonus에 100 대입 -> 그 값을 salary에 대입
// -> 그 값을 income에 대입
salary = 100; bonus = 30;
income = salary + bonus;
int a, b;
a = -7; // - operator
b = -a;
b = +a; // + operator는 아무 기능도 하지 않음
1.0f + 2; // 자료형이 다른 변수끼리 계산시 표현 범위가 더 큰 자료형으로 결과값이 저장됨
return 0;
}
- 이항 연산자(binary operator) : 피연산자 2개 ex) 3 - 2
- 단항 연산자 (Unary operator) : 피연산자 하나 ex) -16
- 복합 ex) -(12 - 11)
5.4 곱하기 연산자
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// 복리 계산 프로그램
int main()
{
double seed_money, target_money, annual_interest;
printf("Input seed money : ");
scanf("%lf", &seed_money);
printf("Input target money : ");
scanf("%lf", &target_money);
printf("Input annual interest (%%) : "); // % 기호를 출력하기 위해 %% 두개 작성
scanf("%lf", &annual_interest);
double fund = seed_money;
int year_count = 0;
while (fund < target_money)
{
// fund = fund + fund * annual_interest / 100.0;
fund += fund * annual_interest / 100.0;
// year_count = year_count + 1;
//year_count += 1;
year_count++;
printf("Year %d : %f\n", year_count, fund);
}
printf("It takes %d years\n", year_count);
return 0;
}
Output :
Input seed money : (1000 입력)
Input target money : (3000 입력)
Input annual interest (%) : (15 입력)
Year 1 : 1150.000000
Year 2 : 1322.500000
Year 3 : 1520.875000
Year 4 : 1749.006250
Year 5 : 2011.357187
Year 6 : 2313.060766
Year 7 : 2660.019880
Year 8 : 3059.022863
It takes 8 years
5.5 나누기 연산자
#include <stdio.h>
int main()
{
printf("Integer divisions\n");
printf("%d\n", 14 / 7);
printf("%d\n", 7 / 2); // 3.5 in floating division -> 정수 / 정수 이므로 결과값도 정수가 나옴
printf("%d\n", 7 / 3); // 2.333 in floating division
printf("%d\n", 7 / 4); // 1.75 in floating division
printf("%d\n", 8 / 4); // 2
printf("Truncating toward zero (C99)\n");
printf("%d\n", -7 / 2); // 3.5 in floating divison
printf("%d\n", -7 / 3); // -2.333 in floating division
printf("%d\n", -7 / 4); // -1.75 in floating divison
printf("%d\n", -8 / 4); // -2
printf("\nFloating divisons\n");
printf("%f\n", 9.0 / 4.0);
printf("%f\n", 9.0 / 4); // Note : 4 is integer.
// 위 계산 실행시 (자료형이 다른 두 숫자를 연산시) 컴파일러가 4를 double로 바꿔주고 계산을 함
return 0;
}
- 정수끼리 연산시 실수 부분을 담을 메모리 공간이 없기 때문에 소수점 이하 부분을 절삭(truncate)을 해버림
Output :
Integer divisions
2
3
2
1
2
Truncating toward zero (C99)
-3
-2
-1
-2
Floating divisons
2.250000
2.250000
강의 출처 : https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 5.9 표현식과 문장 ~ 5.12 함수의 인수와 매개변수 (0) | 2021.09.01 |
---|---|
[홍정모의 따라하며 배우는 C언어] 5.6 연산자 우선순위와 표현식 트리 ~ 5.8 증가, 감소 연산자 (0) | 2021.08.25 |
[홍정모의 따라하며 배우는 C언어] 4.10 scanf() 함수의 사용법 ~ 5.2 대입 연산자와 몇 가지 용어들 (0) | 2021.08.22 |
[홍정모의 따라하며 배우는 C언어] 4.9 printf() 함수가 인자들을 해석하는 과정 (0) | 2021.08.19 |
[홍정모의 따라하며 배우는 C언어] 4.6 명백한 상수들 ~ 4.8 변환 지정자의 수식어들 (0) | 2021.08.18 |