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] = {1, 2}; // 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 |