boolean 타입
ex) bool(데이터타입) is_allive(변수명) = false;(또는 true), 5 > 3; 을 넣으면 1이 출력,\\.
비교연산자의 데이터 값이 올 수 있다.

배열 (자료구조)
같은 데이터타입의 여러 변수를 하나의 묶음으로 나타낸 것.

배열의 데이터타입에 대한 동일한 크기로 메모리상에 연속된 공간이 할당된다.
배열명이 메모리 시작 주소이다.

int : 4byte, double : 8byte . . .

int nums[10];

2차원배열 및 다차원배열
배열이 개념적으로 2중으로, 다중으로 구성되어 있는 것.

1차원 배열 : int student_names[5];			// 5개의 int
		-> 5명의 학생이 있다.
2차원 배열 : int student_nums[3][5];		// 15개의 int
		-> 3개 반에 각각 5명의 학생이 있다.
3차원 배열 : int student_nums[4][3][5];		// 60개의 int
		-> 4개 학년에 각각 3개 반이 존재, 각 반에 5명의 학생이 있다.

( 엔터 없이 ) 문자 하나를 입력받는 방법
_getch();

형변환 : 데이터타입을 변환한다.
묵시적 형변환(자동으로 형 변환 되는 것)
명시적 형변환(형 변환을 문법을 사용하여 강제로 발생 시키는 것.) 예시)  "(int)"input_key_char << endl;

실습1. string형 배열변수 5개짜리를 선언하고
반복문을 통해 학생의 이름을 입력받는다.

입력을 다 받고나서 1 ~ 5 사이의 값을 입력하면 해당학생의 이름이 출력된다.

예시)
	1번째 학생의 이름을 입력하세요 :
	2번째 학생의 이름을 입력하세요 :
	3번째 학생의 이름을 입력하세요 :
	4번째 학생의 이름을 입력하세요 :
	5번째 학생의 이름을 입력하세요 :

	1 ~ 5사이의 번호를 입력하세요 : _
	3을 입력하면 << 3번째 학생의 이름은 ... 입니다.

실습2.
구구단의 결과를 저장하는 2차원 배열을 하나 선언하고,

이중 for문을 이용해서 배열 변수에 구구단의 결과값을 저장하고,

두 수를 입력받아서 적합한 결과값을 출력해보자.

예시)
	(결과 저장 완료)
	몇 단을 볼까요? : _4(입력)
	몇을 곱할까요? : _7(입력)

	4 * 7 = 28

실습3.
A ~ Z 키 중에 하나를 정답으로 설정한다.
유저는 한 개의 키를 입력해서 설정된 값을 맞춘다.
유저가 입력한 키와 설정된 값이 맞으면 승리, 프로그램 종료
틀리면 남은 기회를 보여주고,
5번 틀리면 정답을 알려주고 게임오버

+ 틀릴 때 마다 정답 알파벳이 입력된 알파벳 앞에 있는지, 뒤에 있는지, 힌트를 준다.
+ 입력된 값이 대소문자 구분없이 처리될 수 있도록 수정해보자.

실습1) 학생 이름 나오기 실습

for (int i = 0; i < 5; i++)
{
	cout << i + 1 << " 번째 학생의 이름을 입력하세요. : " << endl;
	cin >> name[i];
}
cout << " 1 ~ 5사이 번호를 입력하세요. " << endl;

cin >> i;

cout << i << " 번째 학생은 " << name[i-1] << " 입니다. " << endl;

실습2) 구구단 for 이중문 실습

int gugu_db[8][9];
int input_dan;
int input_su;

for (int j = 0; j < 8; j++)
{
	for (int i = 0; i < 9; i++)
	{
		gugu_db[j][i] = (j + 2) * (i + 1);
	}
}
//	for (int j = 0; j < 8; j++)
//	{
//		for (int i = 0; i < 9; i++)
//		{
//			cout << gugu_db[j][i] << "\\\\t";
//		}
//		cout << endl;
//	}

cout << "(결과 저장 완료)" << endl;

cout << " 몇 단을 볼까요? : ";
cin >> input_dan;				//4

cout << " 몇을 곱할까요? : ";
cin >> input_su;				//7

cout << input_dan << " x " << input_su << " = " << gugu_db[input_dan - 2][input_su - 1] << endl;

실습3) A~Z사이로 랜덤영어 나오고 맞추기

#include <iostream>
#include <ctime>
#include <conio.h>

using namespace std;

int main()
{
	//아스키 코드: A = 65, Z = 90, a = 97, z = 122

	char correct;
	char input_key;

	//랜덤시간
	srand(time(NULL));

	correct = rand() % 26 + 65;

	cout << " 알파뱃을 골라주세요. " << endl;

	// for 반복

	for (int i = 0; i < 5; i++)
	{
		input_key = _getch();

		cout << correct << endl;

		if (input_key >= 97 && input_key <= 122) 
		{
			input_key -= 32; // 왜 32인지 모르겠다...
		}

		if (input_key == correct)
		{
			cout << " 정답입니다! " << endl;
			break;
		}
		
		else if (i < 4)
		{
			cout << " 틀렸습니다. 남은 기회는 " << 4 - i << " 번 남았습니다. " << endl;
			input_key > correct ? cout << " A 쪽으로 " << endl : cout << " Z 쪽으로 " << endl; 
		}
		else
		{
			cout << "정답은 " << (char)correct << " 였습니다.... " << endl;
		}
	}

}