0413 배열

민우이·2022년 4월 13일
0

/*
boolean 타입
bool is_alive = 5 > 3; /숫자상으로 1출력
bool is_alive = false;
/true or /1byte
배열 (자료구조)
같은 데이터타입의 여러 변수를 하나의 묶음으로 나타낸 것.

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

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

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

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

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

#0########
##########
##########
##########
##########
##########
##########
######E###
##########
##########
system ("cls");

*/
#include
#include <conio.h>
using namespace std;
int main()
{
////int input_key = _getch();
//char input_key = _getch();
//cout << (int)input_key << endl;
//
//명시적 형변환
//float test_float =(float)5.4;//f를 안붙이면 더블로 출력해서 짤림 , 형변환
//float test_float = 5.4f;

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

//cout << nums << endl;
////cout << &(nums[0]) << endl; /같은 값을 출력 /잘못된 메모리 주소로 들어가면 런타임에러가 뜬다.
//for (int i = 0; i < 10; i++)
//	cout << &(nums[i]) << endl;

/*cout << &(nums[1]) << endl;
cout << &(nums[2]) << endl;
cout << &(nums[3]) << endl;*/

/*
실습1. string형 배열변수 5개짜리를 선언하고
반복문을 통해 학생의 이름을 입력받는다.
학생이름 5개 저장
입력을 다 받고나서 1~5 사이의 값을 입력하면 해당학생의 이름이 출력된다.
예시) 1번째 학생의 이름을 입력하세요 : _
	2번째 학생의 이름을 입력하세요 : _
	3번째 학생의 이름을 입력하세요 : _
	4번째 학생의 이름을 입력하세요 : _
	5번째 학생의 이름을 입력하세요 : _

	1~5 사이의 번호를 입력하세요 : _3
	3번째 학생의 이름은 ... 입니다.
	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명의 학생이 있다.

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

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

	두 수를 입력받아서 적합한 결과값을 출력해보자.
	예시) 
	(결과 저장 완료)
	몇 단을 볼까요? : _4
	몇을 곱할까요? : _7
	4 * 7 + 28


*/

/*string name[5];
int num;

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


//string a, b, c, d, e;


	/*cout << &(nums[i]) << endl;
cout << "1번째 학생의 이름을 입력하세요" << endl;
cin >> a >>endl;
cout << "2번째 학생의 이름을 입력하세요" << endl;
cin >> b >>endl;
cout << "3번째 학생의 이름을 입력하세요" << endl;
cin >> c >>endl;*/



//int student_num[3][5] ={	{ 1, 2, 3, 4, 5 },
//							{ 6, 7, 8, 9, 10 },
//							{ 11, 12, 13, 14, 15 } };
////순서대로 출력하는 코드
//for (int j = 0; j < 3; j++)
//{
//	for (int i = 0; i < 5; i++)
//	{
//		cout << student_num[j][i] << endl;
//		//cout << student_num[0][5] << endl; // [1][0]s 정상적인 사용방법 x
//	}
//}

/*
(엔터 없이) 문자 하나를 입력하는 방법
_getch():

*/


/*int gugu[8][9];
int inputdan;
int inputsu;
for (int j = 0; j < 8; j++) {


	for (int i = 0; i < 9; i++)
	{
		gugu[j][i] = (j + 2) * (i + 1);
	}
}

for (int j = 0; j < 8; j++) {


	for (int i = 0; i < 9; i++)
	{
		cout << gugu[j][i] << endl;
	} cout << endl;
}
cout << "결과 저장 완료" << endl;
cout << "몇단을 볼까요";
cin >> inputdan; 
cout << "몇을 곱할까요";
cin >> inputsu; 

cout << inputdan << " * " << inputsu << " = " << gugu[inputdan-2][inputsu-1] << endl;*/

	/*gugu[0][0] = 2 * 1;
	gugu[0][1] = 2 * 2;
	gugu[0][2] = 2 * 3;*/
	
// *&*&&*&*&*&*& 하다가 도전실패한 것 

// int input_key = _getch();
//
// cout << (int)input_key << endl;
// srand(time(NULL))
// int num = rand() % 26 + 65; // 최댓값+ 최소값 +1 더하기 최소값
// cout << rand_num << endl;
//
// int input;
// if ()
// rand()
//
// cout << " 알파벳을 맞추시오" << endl;
// cin >> input;
//for (int chance = 0; chance < 5; chance++) {
//
// }
// if (input == rand())
// {
// cout << "정답입니다" << endl;
// }
// else if (input )

int player;
int map[10][10];
for (map = 0; map < 10; map++)
{
cout << "#" << endl;
}

}

0개의 댓글

관련 채용 정보