Initial Array && ASCII

2022. 2. 25. 18:01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int main(void){
 
    // 배열
 
    int subway_1 = 30;
    int subway_2 = 40;
    int subway_3 = 50;
    
    printf("지하철 1호차에 %d명이 타고 있습니다.", subway_1);
    printf("지하철 2호차에 %d명이 타고 있습니다.", subway_2);
    printf("지하철 3호차에 %d명이 타고 있습니다.", subway_3);
 
    int subway_array[3]; // [0][1][2]
 
    subway_array[0= 30;
    subway_array[1= 40;
    subway_array[2= 50;
    
    for (int i = 0; i<3; i++){
        printf("지하철 %d호차에 %d명이 타고 있습니다.\n", i+1, subway_array[i]);
    }

return 0;
}
cs

위와 같이 배열의 필요성을 인지할 수 있다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
    // 값 설정 방법
    int arr[10]; // 값을 초기화 하지 않아 쓰레기 값이 나옴.
    for (int i =0; i<10; i++){
        printf("%d\n", arr[i]);
    }
 
    // 배열의 크기는 반드시 상수로 선언
 
    int size = 10;
    int arr[size= 10-> 오류
 
    int arr[10= {12}; // 3번째 값부터는 자동으로 '0'으로 초기화 됨.
    for (int i =0; i<10; i++){
        printf("%d\n", arr[i]);
    }
 
    int arr[] = {1,2};
 
    float arr_f[5= {1.0f, 2.0f, 3.0f};
    for (int i =0; i<5; i++){
        printf("%.2f\n", arr_f[i]);
    }
cs

위와 같이 값을 설정하고 배열의 특성을 알 수 있다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
    // 문자 vs. 문자열
    char c = 'A';
    printf("%c\n", c);
 
    // 문자열 끝에는 "끝"을 의미하는 NULL문저 '\0'이 포함되어야 함.
    char str[7= "coding"// [c][o][d][i][n][g]
    printf("%s\n", str);
    printf("%d\n"sizeof(str));
 
    for (int i =0; i<sizeof(str); i++){
        printf("%c\n",str[i]);
    }
 
    char kor[] = "나는장한";
    printf("%s\n", kor);
    printf("%d\n"sizeof(kor));
    // 영어 1글자 : 1 byte
    // 한글 1 글자 : 2 byte
    // en gl ish
    // 한  글
    // char 크기 : 1 byte
 
    char c_array[7= {'c','o','d','i','n','g''\0'};
    printf("%s\n", c_array);
 
    char c_array[10= {'c','o','d','i','n','g'};
    printf("%s\n", c_array);
 
    for (int i = 0; i < sizeof(c_array); i++){
        printf("%c\n", c_array[i]); // %d로 출력하게돠면 ASCII코드 값 출력됨. (null 문자는 0으로 출력됨)
    }
 
    // 문자열 입력 받기 : 
 
    char name[256];
    printf("이름을 입력하세요 : ");
    scanf("%s", name, sizeof(name));
    printf("%s\n", name);
 
    // 참고 : ASCII 코드 ? ANSI(미국표준협회)에서 제시한 표준 코드 체계
    // 7bit  총 128개 코드(0~127)
    // a : 97 (문자 a의 아스키코드 정수값)
    // A : 65
    // 0 = 48
 
    printf("%c\n"'a');
    printf("%d\n"'a');
 
 
    printf("%c\n"'b');
    printf("%d\n"'b');
 
 
    printf("%c\n"'A');
    printf("%d\n"'A');
 
 
    printf("%c\n"'\0'); // 문자열로는 NULL
    printf("%d\n"'\0');
 
    printf("%c\n"'0');
    printf("%d\n"'0');
 
    printf("%c\n"'1');
    printf("%d\n"'1');
 
    // 참고 : 0~127 사이의 아스키콛, 정수값에 해당하는 문자 확인
    for (int i = 0; i < 128; i++){
        printf("아스키코드 정수 %d : %c\n", i, i);
    }
cs

문자열과 ASCII코드에 대한 내용이다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
    printf("\n\n === 아빠는 대머리 게임 == \n\n");
    int answer; // 사용자 입력값
    int treatment = rand() % 4// 발모제 선택 (0 ~ 3)
 
    int cntShowBottle = 0// 이번 게임에 보여줄 병 개수
    int prevCntShowBottle = 0// 앞 게임에 보여준 병 개수
    // 서로 보여주는 병 개수를 다르게 하여 정답률 향상 (처음에 2개 -> 그 다음 3개..)
    // 3 번의 기회 (3번의 발모제 투여 시도)
 
    for (int i =0; i<=3; i++){
        int bottle[4= {0,0,0,0}; // 4개의 병
        do{
            cntShowBottle = rand() % 2 + 2// 보여줄 병 개수 (0-1 +2 -> 2, 3)
        }while(cntShowBottle == prevCntShowBottle);
        prevCntShowBottle = cntShowBottle;
 
        int isIncluded = 0//보여줄 병 중에 발모제가 포함되었는지 여부. // 1이면 포험.
        printf(" > %d번째 시도 : ", i+1);
 
        // 보여줄 병 종류를 선택
        for (int j = 0; j < cntShowBottle; j++){
            int randBottle = rand() % 4// 0 ~ 3
 
            // 아직 선택되지 않은 병이면, 선택 처리
            if(bottle[randBottle] == 0){
                bottle[randBottle] = 1;
                if (randBottle == treatment){
                    isIncluded = 1;
                }
            }
            //이미 선택된 병이면, 중복이므로 다시 선택
            else{
                j--;
            }
        }
        // 사용자에게 문제 표시
 
        for (int k = 0; k< 4; k++){
            if (bottle[k] == 1){
                printf("%d ", k + 1);
            }
        }
        printf("물약을 머리에 바릅니다.\n\n");
 
        if (isIncluded == 1){
            printf("성공 머리가 났어요 ! \n");
        }
        else {
            printf("실패 머리가 나지 않았어요 ..ㅠㅠ \n");
        }
        printf("\n......계속 하려면 아무키나 누르세요....");
        getchar();
    }
    printf("발모제는 몇 번일까요?");
    scanf("%d"&answer);
 
    if (answer == treatment + 1){
        printf("\n >> 정답입니다 !\n");
    }
    else{
        printf("\n >> 틀렸어요, 정답은 %d입니다.\n", treatment + 1);
    }
cs

숫자를 랜덤으로 출력하여 진짜 발모제가 있는 번호의 것을 입력받아 진짜 발모제를 찾는 게임이다.

 

출처 : https://www.youtube.com/watch?v=q6fPjQAzll8&t=494s

'Programming > C\C++' 카테고리의 다른 글

struct 구조체  (0) 2022.03.04
MultiDimensional Array  (0) 2022.03.04
*포인터*  (0) 2022.03.04
functions setting 과 활용  (0) 2022.02.25
if && else if && else 의 활용  (0) 2022.02.23

BELATED ARTICLES

more