C++는 덴마크의 컴퓨터 과학자인 Bjarne Stroustrup이 개발하여 1985년 출시되었다. 운영체제 개발에서 C 언어와 함께 사용되며,
고 수준의 서버 및 PC 소프트웨어에서도 사용된다.
C++는 C 언어의 확장판이라고도 한다. 하위 수준인 C 언어를 기반으로 하지만, 속도나 효율성 저하 없이 C 언어를 개선함과 동시에 객체 지향 프로그래밍(object-oriented programming) 기능을 추가했기 때문이다. 또한, C 언어보다는 고도의 기능을 갖추었기 때문에 중급 수준의 프로그래밍 언어로 간주된다.
3줄 요약
1. C++은 1985년에 처음으로 탄생한 언어이다.
2. C에 객체지향을 얹은게 C++이다.
3. 개발자의 실수로 취약점이 발생했을 때, C++은 교정해주지 않는다.
반적으로 변수(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변수를 초기화하고 다시실행시키면

이렇게 잘 실행되는걸 확인할 수 있다.
데이터 타입으로는
| 종류 | 데이터 타입 | 크기 | 기억 범위 |
|---|---|---|---|
| 문자 | char | 1Byte | -128~127 |
| 부호없는 문자형 | unsigned char | 1Byte | 0~255 |
| 정수 | short | 2Byte | -32,768~32,768 |
| int | 4Byte | -2,147,483,648 ~ 2,147,483,647 | |
| long | 4Byte | -2,147,483,648 ~ 2,147,483,647 | |
| long long | 8Byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
| 부호없는 정수형 | unsigned short | 2Byte | 0~65,535 |
| unsigned int | 4Byte | 0~4,294,967,295 | |
| unsigned long | 4Byte | 0~4,294,967,295 | |
| 실수 | float | 4Byte | 1.2×10⁻³⁸~ 3.4×10³⁸ |
| double | 8Byte | 2.2×10⁻³⁰⁸ ~ 1.8×10³⁰⁸ | |
| long double | 8Byte | 2.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연산자에 변수나 상수가 피연산자로 전달되면 해당 변수나 상숫값에 해당하는 타입의 크기를 반환한다.
범위 지정 연산자(::)는 여러 범위에서 사용된 식별자를 식별하고 구분하는데 사용된다. 이러한 식별자로는 변수,함수,또는 열거체가 올 수 있다.
범위 지정 연산자를 변수 이름 앞에 붙이면 해당 변수는 전역으로 사용한다는 의미가 된다. 또한 클래스에 이 연산자를 사용하면 네임스페이스의 멤버를 식별하거나, 클래스의 정적 멤버를 호출할 수 있다. 문법은 아래와 같다.
::식별자
클래스이름::식별자
네임스페이스::식별자
열거체::식별자
멤버 포인터 연산자를 사용해 클래스의 멤버를 가리키는 포인터를 정의할 수 있다. 두 가지 형태가 존재한다.
1. 왼쪽의 피연산자가 클래스 타입의 객체인 경우: .*
2. 왼쪽의 피연산자가 클래스 타입의 객체를 가리키는 포인터인 경우 : ->*
문법은 아래와 같다.
클래스타입의객체.*멤버이름
클래스타입객체의포인터->*멤버이름
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 | = | 대입 연산자 및 복합 대입 연산자 | 오른쪽에서 왼쪽으로 |
| 17 | throw | 예외 발생 | 왼쪽에서 오른쪽으로 |
| 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 >> 변수명을 사용해준다.

실행결과이다. 변수들을 입력받고, 입력한 변수들을 출력하는 프로그램이다.
#include <iostream>
using namespace std;
int main()
{
return 0;
}
#include <iostream>
using namespace std;
int main()
{
// 입력 받은 숫자를 저장 할 2개의 변수를 선언
int firstNum = 0;
int secondNum = 0;
return 0;
}
여기서 int a=0; int b=0;이런식으로 변수를 선언해도 되지만 나중에 좋은 개발자가 되기위해서는 누구든 알아보기 쉽게 변수명을 정확하게 선언을 하는게 좋다.
개발은 혼자서만 하는게아니라 협업이 중요하기때문!
#include <iostream>
using namespace std;
int main()
{
int firstNum = 0;
int secondNum = 0;
// 변수에 2개의 값을 담음
// 입력을 받고 있다는 것을 알리기 위한 텍스트도 같이 출력
cout << "첫 번째 수 입력 : ";
cin >> firstNum;
cout << "두 번째 수 입력 : ";
cin >> secondNum;
return 0;
}
#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;
}


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

실행 결과이다.
#include <iostream>
using namespace std;
int main()
{
return 0;
}
#include <iostream>
using namespace std;
int main()
{
double score[5];
return 0;
}
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];
return 0;
}
cin 함수를 사용하여 score[인덱스]번호로 접근하여 숫자를 입력하여 담는다.
#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로 나눈 값이다.
#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문부터 공부할 예정이다.