본문 바로가기
코드트리

[코드트리 조별과제] C++ 기초 : 연산자

by ahrelee 2024. 7. 29.

3. 연산자

1. 사칙연산

1) 간단한 사칙연산

 

  • 덧셈(+), 뺄셈(-), 곱셈(*)
  • 나눗셈 몫 연산(/), 나머지 연산(%)
#include <iostream>
using namespace std;

int main() {

	int a = 9, b = 4;

	cout << a + b << ' ' << a * b << ' ' << a - b << ' ';
	cout << a / b << ' ' << a % b << ' ' << (double)a / b;

	return 0;

}

 

  • 실수 결과를 얻고 싶다면 type을 double형으로 변경해줘야 함.
  • 두 type 중 하나만 실수형이면 됨. 
#include <iostream>
using namespace std;

int main() {

	int a = 9, b = 4;

	cout << (double)a / b << endl;
	cout << (double)(a / b);

	return 0;

}

 

  • 사칙연산 계산 시 type은 더 큰 범위의 type으로 결정
#include <iostream>
using namespace std;

int main() {

	double a = 3.5;
	int b = 4;
	cout << a + b;

	return 0;
}
// 정수 + 실수 계산 시, 계산 결과는 실수

 

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;

	cout << a + b << endl;
    cout << a - b << endl;
    cout << a / b << endl;
    cout << a % b << endl;

	return 0;
}

 

 

2) 길이 변형 후 사각형 넓이 구하기

 

#include <iostream>
using namespace std;

int main() {
    int width, height;

    cin >> width >> height;
    width += 8;
    height *= 3;

	cout << width << endl;
    cout << height << endl;
    cout << width * height << endl;

	return 0;
}

 

 

3) 두수의 곱과 몫

 

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;

	cout << a << " * " << b <<  " = " << a * b << endl;
    cout << a << " / " << b <<  " = " << a / b << endl;

	return 0;
}

 

4) 몫과 나머지

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;
    
    cout << a / b << "..." << a % b;
    
    return 0;
}

 

5) 입력받아 연산하기

 

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;
    
    a += 87;
    b %= 10;

    cout << a << endl << b;
    
    return 0;
}

 

6) 2개의 정수를 서로 더하기

 

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;
    
    a += b;
    b += a;

    cout << a << ' ' << b;
    
    return 0;
}

 

7) 출력결과 24

 

8) 출력결과 25

 

9) 출력결과 62

 

 

10) 합과 차의 나눗셈

 

#include <iostream>
using namespace std;

int main() {
    int a, b;
    double res;

    cin >> a >> b;
    res = (double)(a + b) / (double)(a - b);
     
    cout.precision(2);
    cout << fixed << res;

    return 0;
}

 

 

2. 합과 평균

#include <iostream>
using namespace std;

int main() {

	int a = 9, b = 4;

	cout << a + b << ' ' << (double)(a + b) / 2;

	return 0;

}

 

결과: 13 6.5

int a = 9, b = 4;

cout << (double)(a + b / 2);

 

결과: 11

 

1) 합과 평균

 

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;

    cout.precision(1);
    cout << fixed << a + b << ' ' << (double)(a + b) / 2;

    return 0;
}

 

2) 세 수의 합과 평균 구하기

 

#include <iostream>
using namespace std;

int main() {
    int a, b, c;

    cin >> a >> b >> c;

    cout << fixed << a + b + c << endl << (a + b + c) / 3;

    return 0;
}

 

3) 합과 평균의 차

 

#include <iostream>
using namespace std;

int main() {
    int a, b, c;

    cin >> a >> b >> c;

    cout << fixed << a + b + c << endl << (a + b + c) / 3 << endl << (a + b + c) - (a + b + c) / 3;

    return 0;
}

 

4. 조건문

if (조건) {
  
  여기에 조건이 참일 경우에만 수행되는 코드 작성

}

 

1. if 조건문

 

1) 음수 구별하기

#include <iostream>
using namespace std;

int main() {
    int n;

    cin >> n;
    
    cout << n << endl;
    if (n < 0)
        cout << "minus";
    return 0;
}

 

2) 큰 수에서 빼기

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;
    
    if (a > b)
        cout << a - b;
    if (b > a)
        cout << b - a;
    if (b == a)
        cout << 0;
        
    return 0;
}

 

3) 체질량지수

 

#include <iostream>
using namespace std;

int main() {
    int h, w;
    int b;

    cin >> h >> w;
    
    b = (10000 * w)/(h * h);

    cout << b;
    if (b >= 25)
        cout << endl << "Obesity";

    return 0;
}

 

4) 정사각형의 넓이

#include <iostream>
using namespace std;

int main() {
    int n;
    int area;

    cin >> n;
    
    area = n * n;

    cout << area;
    if (n < 5)
        cout << endl << "tiny";

    return 0;
}

 

2. if else 조건문

 

if (조건) {
  
  여기에 조건이 참일 경우에만 수행되는 코드 작성

}
else {

    여기에 조건이 거짓일 경우에만 수행되는 코드 작성

}

이 위치에 있는 코드는 조건과 무관하게 항상 수행됩니다.

 

1) 시험 통과 여부 확인하기

#include <iostream>
using namespace std;

int main() {
    int n;

    cin >> n;

    if (n >= 80)
        cout << "pass";
    else
        cout << (80 - n) << " more score";
        
    return 0;
}

 

2) 숫자의 조건 여부

#include <iostream>
using namespace std;

int main() {
    int a;

    cin >> a;

    if (a >= 113)
        cout << 1;
    else
        cout << 0;
        
    return 0;
}

 

3) 비교에 따른 연산

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;

    if (a > b)
        cout << a * b;
    else
        cout << b / a;
        
    return 0;
}

3. 삼항 연산자

if (조건) {
    a = v1;
}
else {
    a = v2;
}

 

a = 조건 ? v1 : v2;

 

1) 2개 중 최대

#include <iostream>
using namespace std;

int main() {
    int a, b;
    int max;

    cin >> a >> b;

    max = a > b ? a : b;

    cout << max;
    
    return 0;
}

 

2) 삼항연산자

 

#include <iostream>
#include <string>
using namespace std;

int main() {
    int score;
    string str;

    cin >> score;

    str = score == 100 ? "pass" : "failure";

    cout << str;
    
    return 0;
}

 

3) 삼항연산자 2

#include <iostream>
using namespace std;

int main() {
    int a;
    char t_or_f;

    cin >> a;

    t_or_f = a == 1 ? 't' : 'f';

    cout << t_or_f;
    
    return 0;
}

 

4. if elif else 조건문

  • if /  else if / else
if (조건1) {
    코드1
}

else if (조건2) {
   코드2
}

else {
    코드3
}

코드4

 

  • if / else if
if (조건1) {
    코드1
}

else if (조건2) {
   코드2
}

코드4

 

1) 물의 상태

#include <iostream>
using namespace std;

int main() {
    int temp;

    cin >> temp;

    if (temp < 0)
        cout << "ice";
    else if (temp >= 100)
        cout << "vapor";
    else
        cout << "water";
        
    return 0;
}

 

2) 시력 검사 2

#include <iostream>
using namespace std;

int main() {
    double sight;

    cin >> sight;

    if (sight >= 1.0)
        cout << "High";
    else if (sight >= 0.5)
        cout << "Middle";
    else
        cout << "Low";
        
    return 0;
}

 

3) 살 수 있는 물건

#include <iostream>
using namespace std;

int main() {
    int money;

    cin >> money;

    if (money >= 3000)
        cout << "book";
    else if (money >= 1000)
        cout << "mask";
    else
        cout << "no";
        
    return 0;
}

5. if elif elif else 조건문

1) 출석 부르기

 

#include <iostream>
using namespace std;

int main() {
    int num;

    cin >> num;

    if (num == 1)
        cout << "John";
    else if (num == 2)
        cout << "Tom";
    else if (num == 3)
        cout << "Paul";
    else
        cout << "Vacancy";
        
    return 0;
}

 

2) 등급 매기기

 

#include <iostream>
using namespace std;

int main() {
    int score;

    cin >> score;

    if (score >= 90)
        cout << 'A';
    else if (score >= 80)
        cout << 'B';
    else if (score >= 70)
        cout << 'C';
    else if (score >= 60)
        cout << 'D';
    else if (score < 60)
        cout << 'F';
        
    return 0;
}

 

3) 알파벳에 따른 평가

 

#include <iostream>
using namespace std;

int main() {
    char upper;

    cin >> upper;

    if (upper == 'S')
        cout << "Superior";
    else if (upper == 'A')
        cout << "Excellent";
    else if (upper == 'B')
        cout << "Good";
    else if (upper == 'C')
        cout << "Usually";
    else if (upper == 'D')
        cout << "Effort";
    else
        cout << "Failure";

    return 0;
}

 

4) 살 수 있는 물건 2

#include <iostream>
using namespace std;

int main() {
    int n;

    cin >> n;

    if (n >= 3000)
        cout << "book";
    else if (n >= 1000)
        cout << "mask";
    else if (n >= 500)
        cout << "pen";
    else
        cout << "no";

    return 0;
}

 

6. if if 조건문

1) 최대 2번의 연산

 

#include <iostream>
using namespace std;

int main() {
    int a;

    cin >> a;

    // 만약 a가 짝수라면
    if (!(a % 2))
        a /= 2;
    if (a % 2)
        a = (a + 1) / 2;
    
    cout << a;

    return 0;
}

 

2) 숫자의 조건 여부 2

 

#include <iostream>
using namespace std;

int main() {
    int a;

    cin >> a;

    if (a == 5)
        cout << 'A';
    if (!(a % 2))
        cout << 'B';
        
    return 0;
}

 

3) 두 번의 연산

 

#include <iostream>
using namespace std;

int main() {
    int a;

    cin >> a;

    if (a % 2)
        a += 3;
    if (!(a % 3))
        a /= 3;
    
    cout << a;
    
    return 0;
}

 

7. if else if else 조건문

1) 두 숫자의 짝홀 여부

 

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;

    if (a % 2)
        cout << "odd" << endl;
    else
        cout << "even" << endl;
    if (b % 2)
        cout << "odd" << endl;
    else
        cout << "even" << endl;
    return 0;
}

 

 

2) 특정 조건 두 정수 비교

 

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cin >> a >> b;

    if (a < b)
        cout << 1 << " ";
    else
        cout << 0 << " ";
    if (a == b)
        cout << 1;
    else
        cout << 0;
    return 0;
}

 

3) 3 또는 5의 배수

 

#include <iostream>
using namespace std;

int main() {
    int a;

    cin >> a;

    if (a % 3 == 0)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
    if (a % 5 == 0)
        cout << "YES";
    else
        cout << "NO";
    return 0;
}

8. 비교 연산자와 조건문

1)  비교 연산

 

2) 4가지 관계연산자

 

3) 4번의 크기 비교

 

9. and 기호

1) 점수 비교

 

2) 범위 안의 수

 

3) 시력 검사

 

4) 특정 조건 세 정수 비교

 

5) 세 정수의 최솟값

 

6) 세 수의 중간값

 

10. or 기호

1) 범위 밖의 수

 

2) 숫자의 조건 여부 3

 

3) 둘 중 하나의 배수

 

11. and, or 혼합

1) 굉장한 숫자

 

2) 숫자의 계절은

 

3) 장학금

 

4) 좀 더 어려운 수학 점수

 

5) 두 사람

 

12. 중첩 조건문 

1) 남녀노소 구분짓기

 

2) 윤년인가

 

3) 출력결과 61

 

4) 일 수 구하기

 

5) 최댓값 구하기

 

6) 코로나 메뉴얼

 

7) 중앙값 구하기