1. 사칙연산
C++에서 사용되는 사칙연산 덧셈, 뺄셈, 곱셈, 나눗셈은 각각 +,-,*,/으로 구할 수 있다.
#include <iostream>
using namespace std;
int main() {
int a = 9, b = 4;
cout << "덧셈 : "<< a + b << endl;
cout << "뺄셈 : " << a - b << endl;
cout << "곱셈 : " << a * b << endl;
cout << "나눗셈 : " << a/b;
return 0;
}
덧셈 : 13
뺄셈 : 5
곱셈 : 36
나눗셈 : 2
나눗셈 연산의 경우 몫과 나머지가 중요한데, 몫은 / 으로 구하고 나머지는 % 로 구한다.
나눗셈 연산은 자바랑 동일하다고 보면 된다.
a / b로 연산을 진행할때, 나누어 떨어지지 않는다면 위와 같이 9를 4로 나눈 정수인 몫 2가 나온다.
만약 실수로 정확히 나눗셈 결과를 얻고 싶다면 정수 a나 b중 하나를 (double)로 타입 변환을 해줘야한다.
#include <iostream>
using namespace std;
int main() {
int a = 9, b = 4;
cout << "나눗셈 : " << (double)a/b << endl;
cout << "몫 : " << a/b << endl;
cout << "나머지 : " << a%b;
return 0;
}
나눗셈 : 2.25
몫 : 2
나머지 : 1
2. 실수형과 정수형 연산
사칙연산 계산시에 type이 더 큰 범위를 따라가게 된다.
1과 3.5의 합은.. 4.5가 나온다는 소리
#include <iostream>
using namespace std;
int main() {
int a = 1;
double b = 3.5;
cout << a+b;
return 0;
}
4.5
나눗셈 연산도 마찬가지로, 둘중 하나가 실수이면 / 연산 결과는 몫이 아니라 나눗셈 결과가 나온다
#include <iostream>
using namespace std;
int main() {
double a = 10.0;
int b = 4;
cout << a/b;
return 0;
}
2.5
C++에서는 4.0이나 5.0을 출력할때 실수지만 4랑 5로 출력하는듯?
5.0으로 출력하고 싶다면, cout << fixed; cout.precision(1);을 이
#include <iostream>
using namespace std;
int main() {
double a = 3 / 3;
int b = 4;
cout << a + b;
cout << endl;
cout << fixed;
cout.precision(1);
cout << a+b;
return 0;
}
5
5.0
3. 단축연산자
다른 언어와 마찬가지로 단축연산자 제공함
a = a + 5;는 a+=5;
a = a - 5;는 a-= 5;
a = a * 5; 는 a*= 5;
a = a % 5; 는 a %= 5;
a = a / 5; 는 a/=5;
직사각형의 가로와 세로의 길이를 정수형 값으로 입력받은 후 가로의 길이는 8 증가시키고 세로의 길이는 3배하여 저장한 후 가로의 길이, 세로의 길이, 넓이를 차례로 출력하는 프로그램을 작성해주세요.
#include <iostream>
using namespace std;
int main() {
int a,b;
cin >> a >> b;
a += 8;
b *= 3;
cout << a << endl << b << endl << a*b;
return 0;
}
4. 우선순위
당연히 사칙연산에 우선순위가 존재하기 때문에, 괄호를 적절히 사용해서 의도하는 결과가 나오도록 해야함
#include <iostream>
using namespace std;
int main() {
int a = 9, b = 4;
cout << (double)((a+b)/2) << endl;
cout << (double)(a+b/2);
return 0;
}
6
11
세 개의 정수를 입력받아서 합계와 평균을 출력하는 프로그램을 작성해주세요.
(단, 평균은 소수 이하를 버립니다.)
#include <iostream>
using namespace std;
int main() {
int a,b,c;
cin >> a >> b >> c;
cout << a+b+c << endl << (a+b+c)/3;
return 0;
}
10 20 7
37
12
5. 연습문제
1008번: A/B
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
6. 풀이
기본적으로 C++이 실수를 소수점 6째자리까지만 출력하는데..
실제 정답과 출력의 오차가 이하가 되어야 정답이라고 나와있어서
소수점 9째자리 이상을 출력해줘야한다.
그래야 실제 정답과 출력 차이가 이하가 될 수 있기 때문에
파이썬과는 다른 맛이네;; 이런 생각 안해봤는데
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << fixed;
cout.precision(9);
cout << (double)a / b;
return 0;
}
파이썬과는 다른 맛이네;;
'알고리즘 > C++ 기초' 카테고리의 다른 글
C++ 알고리즘 기초11 -조건문 배우기2(삼항연산, if-else if-else) (0) | 2023.05.16 |
---|---|
C++ 알고리즘 기초10 -조건문 배우기1(if, else)- (0) | 2023.05.15 |
C++ 알고리즘 기초8 -빠른 입출력을 위한 cin,cout과 scanf & printf 배우기- (0) | 2023.05.13 |
C++ 알고리즘 기초7 -문자,문자열 입력받기- (0) | 2023.05.13 |
C++ 알고리즘 기초6 -실수 입력받기, 공백을 사이에 두고, 여러 줄 걸쳐서 입력받기 - (0) | 2023.05.12 |