20220413_배운것~~~!

2022. 4. 13. 11:27C++

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