배열 과 형변환

김동현·2022년 4월 13일
0

/*
blooean타입
bool is_alive = false;
bool is_alive = true;

 bool is_alive = 5 > 3;
 1 (true)

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

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

int nums[10]; --> 연속된 배열 4byte 가 연속되서 10개가 잡힘 --> 40byte

배열명이 메모리 시작 주소이다.

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

1차원 배열 : int student_nums[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();

형변환 : 데이터타입을 변환한다.
묵시적 형변환
명시적 형변환

*/

#include
#include
#include <conio.h>

using namespace std;

int main()
{
//int nums[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 12 };

//cout << nums << endl;
//cout << &nums[1] << endl; // [0] 첫번째꺼 출력 [9] 로 하면 10번재꺼 출력 
//cout << &nums[2] << endl; // [?] => 시작주소에서 ? 만큼 떨어져 있다. 0번부터 시작
//cout << &nums[3] << endl; // 배열이 4byte 씩 자리를 차지하고 있다.

//for (int i = 0; i < 10; i++)
//{
//    cout << nums[i] << endl;
//}

//cout << endl;
//cout << endl;

//int student_nums[3][5] = { {1, 2, 3, 4, 5},
//                           {6, 7, 8, 9, 10},
//                           {11, 12, 13, 14, 15} };


////cout << student_nums[0][5] << endl; // [1][0] 과 같은 메모리값이다 => 연속된 메모리라 그렇다

//// 순서대로 출력하는 코드

//for (int j = 0; j < 3; j++)
//{
//    for (int i = 0; i < 5; i++)
//    {
//        cout << student_nums[j][i] << endl;
//    }
//}


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

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

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

//        1 ~ 5사이의 번호를 입력하세요 : _3
//        3번째 학생의 이름은 ... 입니다.
//*/

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

///*
//    실습2.
//    구구간의 결과를 저장하는 2차원 배열을 하나 저장하고,

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

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

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

//        4 * 7 = 28
//*/



////int student_nums[3][5] = { {1, 2, 3, 4, 5},
////                           {6, 7, 8, 9, 10},
////                           {11, 12, 13, 14, 15} };
//   

////cout << student_nums[0][5] << endl; // [1][0] 과 같은 메모리값이다 => 연속된 메모리라 그렇다

//// 순서대로 출력하는 코드

//int gugudan [8][9];
//int farst_num = 0;
//int last_num = 0;

//for (int j = 0; j < 8; j++)
//{
//    for (int i = 0; i < 9; i++)
//    {
//       gugudan[j][i] = (j+2) * (i+1);
//    }
//}
//cout << "(결과 저장 완료)" << endl;
//cout << "몇단을 볼까요? : ";
//cin >> farst_num;
//cout << "몇을 곱할까요? : ";
//cin >> last_num;
//cout << gugudan[farst_num-2][last_num-1] << endl;

//// 교수님 해설.

//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);
//     }

//}

//cout << "(결과 저장 완료)" << endl;
//cout << "몇단을 볼까요? : ";
//cin >> input_dan;
//cout << "몇을 곱할까요? : ";
//cin >> input_su;
//cout << input_dan << " * " << input_su << " = " << gugu_db[input_dan - 2][input_su - 1] << endl;


//int input_key = _getch();
//char input_key_char = _getch();

//cout << (int)input_key_char << endl;

//float test_float = (float)5.4;

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

//    + 틀릴 때마다 정답 알파벳이 입력된 알파벳 앞에 있는지. 뒤에 있는지 힌트를 준다.

//    + 입력된 값이 대소문자 구분 없이 처리될 수 있도록 수정 해보자.
//*/

/*
int right_answer = 0;
int user_answer;

right_answer = 'A';

cin >> user_answer;

for (int i = 0; i < 5; i++)
{
    if (right_answer && user_answer)
        cout << "승리" << endl;
    else if (right_answer != user_answer)
        cout << "패배" << endl;
}

*/

/*
    콘솔용 탈출게임
    10 * 10 크기의 맵을 구성한다. (2차원 배열)
    플레이어(0, 0)가 존재한다.
    탈줄지점이 존재한다.
    WASD 키입력을 통해 플레이어를 이동시킨다.
    탈출지점은 (0, 0)을 제외하고 랜덤 설정
    O가 E에 도달하면 "탈출에 성공했습니다." 프로그램 종료

    #O########
    ##########
    ##########
    ##########
    ##########
    ##########
    ##########
    ######E###
    ##########
    ##########

    system("cls");
*/

char player = 'P';
char goal = 'E';

srand(time(NULL));

int x = rand() % 10;
int y = rand() % 10;

int goal[x][y];

 cout << player << (char)goal << endl;


for (int i = 0; i < 10; i++)
{
    for (int j = 0; j < 10; j++)
        cout << "#";
    cout << endl;
}

}

profile
해보자요

0개의 댓글