2022. 4. 13. 11:27ㆍC++
Visual studio
솔루션 만들기 : 기존에 킨 프로젝트에서 파일 -> 새 프로젝트 만들기 -> 솔루션추가 , 솔루션만들기 2개의 기능이 있다.
솔루션을 만들면 메인 함수가 2개가 켜지는데 추가하기전에 먼저 킨 솔루션이 시작된다.
솔루션 시작을 바꾸려면 나중에 먼저 킨 솔루션을 오른쪽 클릭하고 시작 프로젝트로 설정하면 된다.
배열 (자료구조)
같은 데이터타입의 여러 변수를 하나의 묶음으로 나타낸 것. ex) boolean 타입
bool is_alive = 5 > 3;
배열의 데이터타입에 대한 동일한 크기로 메모리상에 연속된 공간이 할당된다.
배열명이 메모리 시작 주소이다.
순서대로 출력하는 코드
2차원배열 및 다차원배열
배열이 개념적으로 2중으로, 다중으로 구성되어 있는것.
1차원 배열 : int student_nums[5]; // 5개의 int
-> 5명의 학생이 있다.
2차원 배열 : int student_nums[3][10];
-> 3개 반에 각각 5명의 학생이 있다. // 15개의 int
3차원 배열 : int student_nums[4][3][5];
-> 4개 학년에 각각 3개 반이 존재, 각 반에 5명의 학생이 있다. // 60개의 int
int student_nums[3][5] = { {1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15} }
(엔터 없이 ) 문자 하나를 입력받는 방법
#include <iostream>
#include <conia.h> <- 이거 써야 _getch() 쓸수잇게 바뀜
int main ()
_getch();
형변환 : 데이터타입을 변환한다.
묵시적 형변환
명시적 형변환
실습 1. string형 배열 변수 5개짜리를 선언하고
반복문을 통해 학생의 이름을 입력받는다.
입력을 다 받고나서 1 ~5 사이의 값을 입력하면 해당학생의 이름이 출력된다.
예시)
1번째 학생의 이름을 입력하세요 : _
2번째 학생의 이름을 입력하세요 : _
3번째 학생의 이름을 입력하세요 : _
4번째 학생의 이름을 입력하세요 : _
5번째 학생의 이름을 입력하세요 : _
1 ~5 사이의 번호를 입력하세요 : _3
3번째 학생의 이름은 ... 입니다.
string name[5];
for (int i = 0; i < 5; i++)
{
cout << i + 1 << "번째 학생의 이름을 입력하세요 : ";
cin >> name[i];
}
cout << "1 ~5 사이의 번호를 입력하세요 : _ ";
int number;
cin >> number;
cout << number << "번째 학생의 이름은 " << name[number - 1] << "입니다. " << endl;
실습2 배열문제
구구단의 결과를 저장하는 2차원 배열을 하나 선언하고,
2 * 1 = 2 /
이중 for문을 이용해서 배열 변수에 구구단의 결과값을 저장하고,
두 수를 입력받아서 적합한 결과값을 출력해보자
예시)
(결과 저장완료)
몇 단을 볼까요 ? : 4
몇을 곱할까요 ? : 7
4 * 7 = 28
int gugu[8][9];
for (int n1 = 0; n1 < 8; n1++) // 단수 2단부터
{
for (int n2 = 0; n2 < 9; n2++) // 곱 1 ~9 까지
{
gugu[n1][n2] = (n1 + 2) * (n2 + 1); // 곱하기가된 저장된값
}
}
int input1;
int input2;
cout << "단을 입력해주세요";
cin >> input1;
cout << "곱을 입력해주세요";
cin >> input2;
// 단 // 곱
cout << input1 << " X " << input2 << " = " << gugu[input1 - 2][input2 - 1] << "입니다.";
실습.
A ~ z 키 중에 하나를 정답으로 설정한다.
유저는 한 개의 키를 입력해서 설정된 값을 맞춘다.
유저가 입력한 키와 설정된 값이 맞으면 승리, 프로그램 종료 틀리면 남은 기회를 보여주고,
5번 틀리면 정답을 알려주고 게임오버
+틑릴 때마다 정답 알파벳이 입력된 알파벳 앞에 있는지, 뒤에 있는지 힌트를 준다.
+입력된 값이 대소문자 구분없이 처리될 수 있도록 수정 해보자.
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
srand(time(NULL));
int random_n = (rand() % 26 + 65); // 아스키코드 대문자값 랜덤함수
int chance = 5;
char input_key = 1;
while (true)
{
cout << "남은 기회는 " << chance << endl; // 기회 물어보는거 반복문
cout << "A ~ Z키를 입력하세요"; //
input_key = _getch();// 입력
if (input_key <= 122 && input_key >= 97) // 소문자를 입력햇을때 대문자로 바꿔주는 조건문
{
input_key -= 32;
}
cout << input_key << endl; //입력한 값 나옴
if (input_key == random_n)
{
cout << "정답입니다." << endl; // 정답일떄 종료됨
break;
}
else
{
chance--;
cout << "틀렷습니다." << endl; // 실패일때 찬스가 0될때가지 반복하다 0되면 종료
(input_key < random_n) ? cout << "정답은 입력한 값보다 뒤에 있습니다. "
<< endl : cout << "정답은 입력한 값보다 앞에 있습니다." << endl; // 삼함연산자
if (chance == 0)
{
cout << "정답은 : " << (char)random_n << "이엿습니다." << endl; // 기회가 0일때 게임종료
break;
}
}
}
'C++' 카테고리의 다른 글
202204_15 c++ 구조체 (0) | 2022.04.15 |
---|---|
20220414_게임을 만들어보자! (0) | 2022.04.14 |
20220412_ c++ 조건문 반복문 분기문 (0) | 2022.04.12 |
220407_C++연산 (0) | 2022.04.07 |
(20220405~20220406)_c++ 문법 (0) | 2022.04.07 |