C++ 프로그래밍 기초(1)

주상돈·2024년 12월 23일

TIL

목록 보기
2/53

1. C++이란?

C++는 덴마크의 컴퓨터 과학자인 Bjarne Stroustrup이 개발하여 1985년 출시되었다. 운영체제 개발에서 C 언어와 함께 사용되며,
고 수준의 서버 및 PC 소프트웨어에서도 사용된다.
C++는 C 언어의 확장판이라고도 한다. 하위 수준인 C 언어를 기반으로 하지만, 속도나 효율성 저하 없이 C 언어를 개선함과 동시에 객체 지향 프로그래밍(object-oriented programming) 기능을 추가했기 때문이다. 또한, C 언어보다는 고도의 기능을 갖추었기 때문에 중급 수준의 프로그래밍 언어로 간주된다.

3줄 요약
1. C++은 1985년에 처음으로 탄생한 언어이다.
2. C에 객체지향을 얹은게 C++이다.
3. 개발자의 실수로 취약점이 발생했을 때, C++은 교정해주지 않는다.

2. 변수란?

반적으로 변수(Variable)이라고 한다면 수학적인 의미로 변동이 심한, 가변적인, 변할 수 있는 숫자로 말할 수 있을 것이다.사전적인 의미로는 절대 틀린 말이 아니지만 우리가 배우려는 프로그래밍에서는 조금은 다른 뜻으로 이해, 설명할 수 있어야나중에 누군가에게 설명을 했을 때,듣는 사람이 '아 저 사람, 프로그래밍 좀 공부했구나'라는 소리를 들을 수 있을 것이다.변수의 근본적인 뜻은 크게 다르지 않지만프로그래밍에서 말하고 싶은 변수(Variable)의 뜻은 "하나의 값을 저장할 수 있는 저장공간"이라고 할 수 있다.

아래 코드를 살펴보자.

#include <iostream>
#include <string> //string 헤더를 추가
using namespace std;

int main() {
    // 정수형 변수 선언
    int age = 25;  // 초기값 25
    int year;     // 초기값 없음

    // 실수형 변수 선언
    float pi = 3.14f;
    double largeDecimal = 12345.6789;

    // 문자형 변수 선언
    char grade = 'A';

    // 문자열 변수 (C++ 표준 라이브러리 사용)
    string name = "John";

    // 불리언 변수
    bool isStudent = true;
    
    cout << "Age: " << age << endl;
    cout << "Year: " << year << " (uninitialized, may contain garbage value)" << endl;
    cout << "Pi: " << pi << endl;
    cout << "Large Decimal: " << largeDecimal << endl;
    cout << "Grade: " << grade << endl;
    cout << "Name: " << name << endl;
    cout << "Is Student: " << (isStudent ? "true" : "false") << endl;

    // 상수 선언
    const double gravity = 9.8;  // 중력 가속도
    cout << "Gravity: " << gravity << endl;

    return 0;
}

이 코드는 변수를 선언하는 코드이다.
이 코드를 컴파일하면

이런 오류가 나온다. 초기값을 정해주지않아서 오류가나온다 그래서

int year = 0;

이런식으로 year변수를 초기화하고 다시실행시키면

이렇게 잘 실행되는걸 확인할 수 있다.
데이터 타입으로는

종류데이터 타입크기기억 범위
문자char1Byte-128~127
부호없는 문자형unsigned char1Byte0~255
정수short2Byte-32,768~32,768
int4Byte-2,147,483,648 ~ 2,147,483,647
long4Byte-2,147,483,648 ~ 2,147,483,647
long long8Byte-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
부호없는 정수형unsigned short2Byte0~65,535
unsigned int4Byte0~4,294,967,295
unsigned long4Byte0~4,294,967,295
실수float4Byte1.2×10⁻³⁸~ 3.4×10³⁸
double8Byte2.2×10⁻³⁰⁸ ~ 1.8×10³⁰⁸
long double8Byte2.2×10⁻³⁰⁸ ~ 1.8×10³⁰⁸

그 외에도 참과 거짓값을 갖는 boolean, 한번 정하면 값을 바꿀 수 없는 const(상수)가 있다.

변수의 연산

#include <iostream>
using namespace std;

int main() {
    // 변수 선언 및 초기화
    int a = 10, b = 5;
    float x = 15.5, y = 4.2;

    // 산술 연산
    cout << "산술 연산:" << endl;
    cout << "a + b = " << a + b << endl; // 덧셈
    cout << "a - b = " << a - b << endl; // 뺄셈
    cout << "a * b = " << a * b << endl; // 곱셈
    cout << "a / b = " << a / b << endl; // 나눗셈
    cout << "a % b = " << a % b << endl; // 나머지

    // 대입 연산
    cout << "\n대입 연산:" << endl;
    a += 3;  // a = a + 3
    cout << "a += 3 -> a = " << a << endl;
    a -= 2;  // a = a - 2
    cout << "a -= 2 -> a = " << a << endl;
    a *= 2;  // a = a * 2
    cout << "a *= 2 -> a = " << a << endl;
    a /= 2;  // a = a / 2
    cout << "a /= 2 -> a = " << a << endl;

    // 관계 연산
    cout << "\n관계 연산:" << endl;
    cout << "a == b: " << (a == b) << endl; // 같음
    cout << "a != b: " << (a != b) << endl; // 다름
    cout << "a > b: " << (a > b) << endl;   // 큼
    cout << "a < b: " << (a < b) << endl;   // 작음
    cout << "a >= b: " << (a >= b) << endl; // 크거나 같음
    cout << "a <= b: " << (a <= b) << endl; // 작거나 같음

    // 논리 연산
    cout << "\n논리 연산:" << endl;
    bool c = true, d = false;
    cout << "c && d: " << (c && d) << endl; // 논리 AND
    cout << "c || d: " << (c || d) << endl; // 논리 OR
    cout << "!c: " << (!c) << endl;         // 논리 NOT

    return 0;
}

C++은 여러 종류의 연산을 위해 다양한 연산자를 제공한다.

산술 연산자

사칙연산을 다루는 기본적이고 가장 많이 사용되는 산술 연산자이다.
산술 연산자는 모두 두 개의 피연산자를 갖는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.

+왼쪽의 피연산자에서 오른쪽 피연산자를 더함.
-왼쪽의 피연산자에서 오른쪽 피연산자를 뺌.
*왼쪽의 피연산자에 오른쪽의 피연산자를 곱함.
/왼쪽의 피연산자를 오른쪽의 피연산자로 나눔.
%왼쪽의 피연산자를 오른쪽의 피연산자로 나눈후, 그 나머지를 반환함.

대입 연산자

=왼쪽의 피연산자에서 오른쪽의 피연산자를 대입함.
+=왼쪽의 피연산자에서 오른쪽 피연산자를 더한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
-=왼쪽의 피연산자에서 오른쪽 피연산자를 뺀 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
*=왼쪽의 피연산자에서 오른쪽 피연산자를 곱한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
/=왼쪽의 피연산자에서 오른쪽 피연산자를 나눈 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
%=왼쪽의 피연산자에서 오른쪽 피연산자를 나눈 후, 그 나머지를 왼쪽의 피연산자에 대입함

증감 연산자

증감 연산자는 피연산자를 1씩 증가 시키거나 감소시키는 연산자로, 피연산자가 하나인 단항 연산자이다.
증감 연산자는 해당 연산자가 피연산자의 어느 쪽에 위치하는가에 따라 연산의 순서와 결과가 달라진다.

++x먼저 피연산자의 값을 1증가시킨 후에 해당 연산을 진행함.
x++먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1증가시킴.
--x먼저 피연산자의 값을 1감소시킨 후에 해당 연산을 진행함.
x--먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1감소시킴.

비교 연산자

비교 연산자는 피연산자 사이의 상대적 크기를 판단하는 연산자이다.
모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.

==왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 1을 반환함.
!=왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 1을 반환함.
>왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 1을 반환함.
=>왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 1을 반환함.
<왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 1을 반환함.
=<왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 1을 반환함.

C와 마찬가지로 C++에서 False는 0이며, 0이 아닌 모든 값은 참(True)로 간주된다.

논리 연산자

논리 연산자는 주어진 논리식을 판단하여, 참(true)와 거짓(false)를 결정하는 연산자이다. AND와 OR연산은 두 개의 피연산자를 가지며, 피연산자의 결합 방향은 왼쪽에서 오른쪽이다.
NOT연산자는 피연산자가 하나인 단항 연산자이며, 피연산자의 결합 방향은 오른쪽에서 왼쪽이다.

&&논리식이 모두 참이면 1을 반환함.(논리 AND 연산)
||논리식중에서 하나라도 참이면 1을 반환함.(논리 OR 연산)
!논리식의 결과가 참이면 0을, 거짓이면 1을 반환함.(논리 NOT 연산)

비트 연산자

비트 연산자는 논리 연산자와 비슷하지만, 비트 단위로 논리 연산을 하는 연산자이다. 비트 단위로 bit shifting을 하거나, 1의 보수를 만들 때 사용한다.

&대응되는 비트가 모두 1이면 1을 반환함.(비트 AND 연산)
|대응되는 비트 중에서 하나라도 1이면 1을 반환함.(비트 OR 연산)
^대응되는 비트가 서로 다르면 1을 반환함.(비트 XOR 연산)
~비트를 1이면 0으로, 0이면 1로 반전시킴.(비트 NOT연산, 1의 보수)
<<지정한 수만큼 비트들을 전부 왼쪽으로 이동시킴.(left shift 연산)
>>부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴.(right shift 연산)

삼항 연산자

조건식 ? 반환값1 : 반환값2

물음표 앞의 조건식의 결과에 따라 참(True)이면 반환값1을 반환하고, 거짓(False)이면 반환값2를 반환한다. 이를 이용하면 간단한 조건문은 if문 없이 코드 한 줄로 대체할 수 있고, 굉장히 유용하게 사용되는 연산자이다.

sizeof 연산자

컴퓨팅 환경에 따라 타입에 할당되는 메모리의 크기가 달라질 수 있다. 그 때 확인하는 방법이 sizeof()이다. 이를 함수로 아는 사람들도 많은데 sizeof는 단항 연산자로 피연산자의 크기를 바이트 단위로 반환하는 연산자이다.

이 연산자의 피연산자로는 타입 뿐 아니라 변수나 상수도 올 수 있다. sizeof연산자에 변수나 상수가 피연산자로 전달되면 해당 변수나 상숫값에 해당하는 타입의 크기를 반환한다.

범위 지정 연산자

범위 지정 연산자(::)는 여러 범위에서 사용된 식별자를 식별하고 구분하는데 사용된다. 이러한 식별자로는 변수,함수,또는 열거체가 올 수 있다.

범위 지정 연산자를 변수 이름 앞에 붙이면 해당 변수는 전역으로 사용한다는 의미가 된다. 또한 클래스에 이 연산자를 사용하면 네임스페이스의 멤버를 식별하거나, 클래스의 정적 멤버를 호출할 수 있다. 문법은 아래와 같다.

::식별자
클래스이름::식별자
네임스페이스::식별자
열거체::식별자

멤버 포인터 연산자

멤버 포인터 연산자를 사용해 클래스의 멤버를 가리키는 포인터를 정의할 수 있다. 두 가지 형태가 존재한다.
1. 왼쪽의 피연산자가 클래스 타입의 객체인 경우: .*
2. 왼쪽의 피연산자가 클래스 타입의 객체를 가리키는 포인터인 경우 : ->*

문법은 아래와 같다.

클래스타입의객체.*멤버이름
클래스타입객체의포인터->*멤버이름

typeid 연산자

C++에서는 typeid 연산자를 사용해 객체의 타입에 대한 정보를 알 수 있다. typeid 연산자는 런타임에 객체의 타입을 결정하는 데 사용하고, 또한 템플릿에서 템플릿 매개변수의 타입을 결정할 때도 사용.

typeid(표현식)

연산자의 우선순위와 결합 방향

우선순위결합 방향
1::범위지정 연산자-
2++후위 증가 연산자왼쪽에서 오른쪽으로
--후위 감소 연산자왼쪽에서 오른쪽으로
()함수 호출왼쪽에서 오른쪽으로
[]첨자 연산자왼쪽에서 오른쪽으로
.멤버 연산자왼쪽에서 오른쪽으로
->멤버 접근 연산자왼쪽에서 오른쪽으로
typeid타입 인식왼쪽에서 오른쪽으로
const_cast상수 타입 변환왼쪽에서 오른쪽으로
dynamic_cast동적 타입 변환왼쪽에서 오른쪽으로
reinterpret_cast재해석 타입 변환왼쪽에서 오른쪽으로
static_cast정적 타입 변환왼쪽에서 오른쪽으로
3!논리 NOT 연산자오른쪽에서 왼쪽으로
~비트 NOT 연산자오른쪽에서 왼쪽으로
+양의 부호(단항 연산자)오른쪽에서 왼쪽으로
-음의 부호(단항 연산자)오른쪽에서 왼쪽으로
++전위 증가 연산자오른쪽에서 왼쪽으로
--전위 감소 연산자오른쪽에서 왼쪽으로
(타입)타입 캐스트 연산자오른쪽에서 왼쪽으로
*참조 연산자(단항 연산자)오른쪽에서 왼쪽으로
&주소 연산자(단항 연산자)오른쪽에서 왼쪽으로
sizeof크기 연산자오른쪽에서 왼쪽으로
new객체 생성오른쪽에서 왼쪽으로
delete객체 제거오른쪽에서 왼쪽으로
4.*멤버 포인터 연산자왼쪽에서 오른쪽으로
->*참조 멤버 포인터 연산자왼쪽에서 오른쪽으로
5*곱셈 연산자왼쪽에서 오른쪽으로
/나눗셈 연산자왼쪽에서 오른쪽으로
%나머지 연산자왼쪽에서 오른쪽으로
6+덧셈 연산자(이항 연산자)왼쪽에서 오른쪽으로
-뺄셈 연산자(이항 연산자)왼쪽에서 오른쪽으로
7<<비트 왼쪽 시프트 연산자왼쪽에서 오른쪽으로
>>부호 비트를 확장하면서 비트 오른쪽 시프트왼쪽에서 오른쪽으로
8<관계 연산자(보다 작은)왼쪽에서 오른쪽으로
<=관계 연산자(보다 작거나 같은)왼쪽에서 오른쪽으로
>관계 연산자(보다 큰)왼쪽에서 오른쪽으로
=>관계 연산자(보다 크거나 같은)왼쪽에서 오른쪽으로
9==관계 연산자(와 같은)왼쪽에서 오른쪽으로
!=관계 연산자(와 같지 않은)왼쪽에서 오른쪽으로
10&비트 AND 연산자왼쪽에서 오른쪽으로
11^비트 XOR 연산자왼쪽에서 오른쪽으로
12/비트 OR 연산자왼쪽에서 오른쪽으로
13&&논리 AND 연산자왼쪽에서 오른쪽으로
14||논리 OR 연산자왼쪽에서 오른쪽으로
15?:삼항 조건 연산자오른쪽에서 왼쪽으로
16=대입 연산자 및 복합 대입 연산자오른쪽에서 왼쪽으로
17throw예외 발생왼쪽에서 오른쪽으로
18,쉼표 연산자왼쪽에서 오른쪽으로

변수의 입력

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

int main() {
    // 변수 선언
    string name;
    int age;
    float height;

    // 문자열 입력
    cout << "이름을 입력하세요: ";
    getline(cin, name);

    // 정수 입력
    cout << "나이를 입력하세요: ";
    cin >> age;

    // 실수 입력
    cout << "키를 입력하세요 (cm): ";
    cin >> height;

    // 출력으로 확인
    cout << "\n입력한 정보:" << endl;
    cout << "이름: " << name << endl;
    cout << "나이: " << age << endl;
    cout << "키: " << height << " cm" << endl;

    return 0;
}

cout이 출력이라면 입력을 받는 함수는 cin함수가 있다.
사용법은 위 코드에서와 같이 cin >> 변수명을 사용해준다.

실행결과이다. 변수들을 입력받고, 입력한 변수들을 출력하는 프로그램이다.

간단한 계산기를 만들어보자!

1. 프로그램의 기본 골격을 만들자.

#include <iostream>

using namespace std;

int main()
{
    
    return 0;
}

2. 입력받을 공간을 확보하자

#include <iostream>

using namespace std;

int main()
{
    // 입력 받은 숫자를 저장 할 2개의 변수를 선언
    int firstNum = 0;
    int secondNum = 0;
    

    return 0;
}

여기서 int a=0; int b=0;이런식으로 변수를 선언해도 되지만 나중에 좋은 개발자가 되기위해서는 누구든 알아보기 쉽게 변수명을 정확하게 선언을 하는게 좋다.
개발은 혼자서만 하는게아니라 협업이 중요하기때문!

3. 숫자를 담아보자

#include <iostream>

using namespace std;

int main()
{
    
    int firstNum = 0;
    int secondNum = 0;
    
    // 변수에 2개의 값을 담음
    // 입력을 받고 있다는 것을 알리기 위한 텍스트도 같이 출력
    cout << "첫 번째 수 입력 : ";
    cin >> firstNum;
    
    cout << "두 번째 수 입력 : ";
    cin >> secondNum;

    return 0;
}

4. 최종값을 출력하자

#include <iostream>

using namespace std;

int main()
{
    // 1. 입력 받은 숫자를 저장 할 2개의 변수를 선언
    int firstNum = 0;
    int secondNum = 0;
    
    cout << "첫 번째 수 입력 : ";
    cin >> firstNum;
    
    cout << "두 번째 수 입력 : ";
    cin >> secondNum;
    
    //더한 결과값 출력
    cout << "더한 결과는 : " << firstNum + secondNum << endl;

    return 0;
}

실행결과

3. 배열이란?

앞서 변수에 대해 알아봤다. 학생 10명의 성적을 관리하는 프로그램을 만들경우 변수를 일일히 a,b,c,d,e,f,g,h,i,j로 선언해서 관리를 해도되지만 만약 학생이 100명,1000명,10000명이라면? 불가능하진 않겠지만 매우 비효율적일 것 이다. 그래서 이에 모두 관련된 변수인 데 하나로 관리하면 효율적일 것 이다 이때 사용 하는게 배열이다.

이번엔 성적 관리 프로그램을 만들어보면서 배열에 대해 더 자세히 알아보자

성적 관리 프로그램을 만들기 위한 요구 사항

  1. 입력 받은 성적을 저장 할 수 있어야 한다.
  2. 입력 성적들의 합을 구할 수 있어야 한다.
  3. 입력 받은 성적들의 평균을 구할 수 있어야 한다.

배열 문법

배열의 선언

#include <iostream>
using namespace std;

int main() {
    // 1. 정수형 배열 선언
    int numbers[5]; // 정수를 5개 저장할 수 있는 배열

    // 2. 선언과 동시에 초기화
    int initializedNumbers[3] = {1, 2, 3}; // 정수 배열을 선언하고 값 초기화

    // 3. 크기를 자동으로 설정
    int autoSizeNumbers[] = {10, 20, 30, 40}; // 배열의 크기를 자동으로 결정 (4칸)

    // 4. 실수형 배열 선언
    double decimals[4]; // 실수를 4개 저장할 수 있는 배열

    // 5. 문자형 배열 선언
    char letters[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // 문자열을 저장하기 위한 문자 배열

    // 6. 문자열 배열 (C 스타일)
    char word[] = "Hello"; // 문자열을 저장하는 배열, '\0' 자동 추가

    // 7. 논리형 배열
    bool flags[3] = {true, false, true}; // 참/거짓을 저장하는 배열

    // 8. 다차원 배열 (2차원 배열)
    int matrix[2][3] = { {1, 2, 3}, {4, 5, 6} }; // 2행 3열의 배열 선언

    // 9. 크기가 큰 배열
    long long largeArray[1000]; // 1000개의 데이터를 저장할 수 있는 배열

    // 10. 배열을 모두 0으로 초기화
    int zeroArray[5] = {0}; // 첫 번째 값만 0으로 초기화하면 나머지도 0으로 초기화

    return 0;
}

배열의 선언은
자료형 배열 이름[배열 길이];
와 같이 한다.
그리고 배열의 접근은
배열 이름[인덱스]로 접근한다.

배열의 연산

#include <iostream>
using namespace std;

int main() {
    // 1. 정수형 배열 선언 및 연산
    int numbers[3] = {10, 20, 30}; // 정수형 배열 선언
    int intSum = numbers[0] + numbers[1] + numbers[2]; // 배열의 합 계산
    numbers[1] = 50; // 두 번째 원소를 50으로 수정
    cout << "정수 배열의 합: " << intSum << endl;
    cout << "수정된 정수 배열: " << numbers[0] << ", " << numbers[1] << ", " << numbers[2] << endl;

    // 2. 실수형 배열 선언 및 연산
    double decimals[3] = {1.1, 2.2, 3.3}; // 실수형 배열 선언
    double doubleSum = decimals[0] + decimals[1] + decimals[2]; // 배열의 합 계산
    decimals[2] = 5.5; // 세 번째 원소를 5.5로 수정
    cout << "실수 배열의 합: " << doubleSum << endl;
    cout << "수정된 실수 배열: " << decimals[0] << ", " << decimals[1] << ", " << decimals[2] << endl;

    // 3. 문자형 배열 선언 및 연산
    char letters[3] = {'A', 'B', 'C'}; // 문자형 배열 선언
    letters[1] = 'Z'; // 두 번째 원소를 'Z'로 수정
    cout << "문자 배열: " << letters[0] << ", " << letters[1] << ", " << letters[2] << endl;

    return 0;
}


실행 결과이다.

배열의 입력

#include <iostream>
using namespace std;

int main() {
    // 1. 정수형 배열의 입력
    int numbers[3]; // 정수형 배열 선언
    cout << "정수 3개를 입력하세요: ";
    cin >> numbers[0] >> numbers[1] >> numbers[2]; // 배열의 각 원소를 개별적으로 입력
    cout << "입력된 정수 배열: " << numbers[0] << ", " << numbers[1] << ", " << numbers[2] << endl;

    // 2. 실수형 배열의 입력
    double decimals[3]; // 실수형 배열 선언
    cout << "실수 3개를 입력하세요: ";
    cin >> decimals[0] >> decimals[1] >> decimals[2]; // 배열의 각 원소를 개별적으로 입력
    cout << "입력된 실수 배열: " << decimals[0] << ", " << decimals[1] << ", " << decimals[2] << endl;

    // 3. 문자형 배열의 입력
    char letters[3]; // 문자형 배열 선언
    cout << "문자 3개를 입력하세요: ";
    cin >> letters[0] >> letters[1] >> letters[2]; // 배열의 각 원소를 개별적으로 입력
    cout << "입력된 문자 배열: " << letters[0] << ", " << letters[1] << ", " << letters[2] << endl;
    
    return 0;
}

변수 선언과 마찬가지로 cin으로 받을 수 있다.

실행 결과이다.

성적 관리 프로그램 구현

1. 프로그램의 기본 골격을 만들어 보자.

#include <iostream>

using namespace std;

int main()
{
    
    return 0;
}

2. 입력받을 공간을 확보하자.

#include <iostream>

using namespace std;

int main()
{
    double score[5];
    
    return 0;
}

5명의 학생을 입력받아야하니 배열의 크기를 5로 설정했다.

3. 숫자를 담아보자.

#include <iostream>

using namespace std;

int main()
{
    double score[5];
    
    cout <<"1 번째 학생 점수를 입력해주세요 : ";
    cin >> score[0];
    
    cout <<"2 번째 학생 점수를 입력해주세요 : ";
    cin >> score[1];
    
    cout <<"3 번째 학생 점수를 입력해주세요 : ";
    cin >> score[2];
    
    cout <<"4 번째 학생 점수를 입력해주세요 : ";
    cin >> score[3];
    
    cout <<"5 번째 학생 점수를 입력해주세요 : ";
    cin >> score[4];
    
    
    return 0;
}

cin 함수를 사용하여 score[인덱스]번호로 접근하여 숫자를 입력하여 담는다.

4. 학생들의 총점 및 평균 구하기.

#include <iostream>

using namespace std;

int main()
{
    double score[5];
    
    cout <<"1 번째 학생 점수를 입력해주세요 : ";
    cin >> score[0];
    
    cout <<"2 번째 학생 점수를 입력해주세요 : ";
    cin >> score[1];
    
    cout <<"3 번째 학생 점수를 입력해주세요 : ";
    cin >> score[2];
    
    cout <<"4 번째 학생 점수를 입력해주세요 : ";
    cin >> score[3];
    
    cout <<"5 번째 학생 점수를 입력해주세요 : ";
    cin >> score[4];
    
    double tot = score[0] + score[1] + score[2] + score[3] + score[4];
    double avg = tot / 5;
    
    return 0;
}

tot은 총점변수로 학생들의 점수를 모두 합한 총합값이다.
avg는 평균변수로 학생들의 총점변수인 tot를 학생들의 총 인원인 5로 나눈 값이다.

5.결괏값 출력

#include <iostream>

using namespace std;

int main()
{
    double score[5];
    
    cout <<"1 번째 학생 점수를 입력해주세요 : ";
    cin >> score[0];
    
    cout <<"2 번째 학생 점수를 입력해주세요 : ";
    cin >> score[1];
    
    cout <<"3 번째 학생 점수를 입력해주세요 : ";
    cin >> score[2];
    
    cout <<"4 번째 학생 점수를 입력해주세요 : ";
    cin >> score[3];
    
    cout <<"5 번째 학생 점수를 입력해주세요 : ";
    cin >> score[4];
    
    double tot = score[0] + score[1] + score[2] + score[3] + score[4];
    double avg = tot / 5;
    
    cout << "총점 : " << tot << endl;
    cout << "평균 : " << avg << endl;
    
    return 0;
}

cout 함수로 총점과 평균변수를 출력한다.

실행 결과

정리

오늘은 C++언어에 대해 간단하게 살펴보고 크게 변수,변수 타입,연산,연산 우선순위, 배열을 공부하였다.
배웠던 내용이지만 놓친 부분이없나 체크하면서 강의를 들었고, 추가적으로 찾아서 정리해보았다. 내일은 for문부터 공부할 예정이다.

0개의 댓글