Rylah's Study & Daily Life
06. 배열 (Array) 본문
#include <stdio.h>
int main(void) {
// 배열
//int subway_1 = 30; //지하철 1호차에는 30명
//int subway_2 = 40;
//int subway_3 = 50;
//printf("지하철 1호차에 %d명이 차고 있습니다.\n", subway_1);
//printf("지하철 2호차에 %d명이 차고 있습니다.\n", subway_2);
//printf("지하철 3호차에 %d명이 차고 있습니다.\n", 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]);
//}
//값 설정 방법
/*int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}*/
// 값은 초기화를 반드시 해야됨
/*int arr[10];
for (int i = 0; i < 10; i++) {
printf("%d \n", arr[i]);
}*/
//배열 크기는 항상 상수로 선언
/*int size = 10;
int arr[size]; // 오류*/
//int arr[10] = { 1, 2 }; // 3번째 값부터는 자동으로 0
//for (int i = 0; i < 10; i++) {
// printf("%d \n", arr[i]);
//}
//int arr[] = { 1, 2 }; // arr[2]
//float arr_f[5] = { 1.0f, 2.3f, 3.5f };
//for (int i = 0; i < 5; i++) {
// printf("%.2f \n", arr_f[i]);
//}
// 문자, 문자열
/*char c = 'A';
printf("%c\n", c);*/
// 문자열 끝에는 NULL 이나 \0이 포함되어야 함.
//char str[6] = "coding"; //[c][o][d][i][n][g]
//char str[7] = "coding";
//printf("%s\n", str);
//char str[] = "coding";
///*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));
//for (int i = 0; i < sizeof(kor); i++) {
// printf("%c\n", kor[i]);
// }
// 영어 한글자 1바이트
// 한글 한글자 2바이트
//char c_array[7] = { 'c','o','d','i','n','g','\0' };
/*char c_array[6] = { 'c','o','d','i','n','g' };
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]);
////}
//for (int i = 0; i < sizeof(c_array); i++) {
// printf("%d\n", c_array[i]); // ASCII 코드 값 NULL 문자는 0으로 입력
//}
//// 문자열 입력받기 경찰서 조서쓰기 예제
//char name[256];
//printf("이름을 입력하세요 : ");
//scanf_s("%s", name, sizeof(name));
//printf("%s\n", name);
// 참고 : ASCII 코드란? ANSI(미국 표준 협회)에서 제시한 표준 코드 체계
// 7bit, 총 128개 코드 (0~127)
// a : 97 (문자 a의 아스키 코드 정수값)
// A : 65
// O : 46
//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');
//printf("%d\n", '\0');
//printf("%c\n", '0');
//printf("%d\n", '0');
//printf("%c\n", '1');
//printf("%d\n", '1');
// 참고 2 : 0 ~127 사이의 ASCII 코드 정수 값에 해당하는 문자 확인
for (int i = 0; i < 128; i++) {
printf("아스키 코드 정수 %d : %c\n", i, i);
}
return 0;
}
#include <stdio.h>
#include <time.h>
int main(void) {
srand(time(NULL));
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 };
do {
cntShowBottle = rand() % 2 + 2; // 보여줄 병의 갯수 (0~1) + 2 = 2 or 3
} while (cntShowBottle == prevCntShowBottle);
prevCntShowBottle = cntShowBottle;
int isincluded = 0; // 보여줄 병 중에 발모제가 포함되었는 지 여부
printf(" > %d 번째 시도 : ", i);
// 보여줄 병 선택
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");
if (isincluded == 1) {
printf(" >> 성공 ! 머리가 났어요!!\n");
}
else {
printf(" >> 실패 ! 머리가 나지 않았어요.. ㅠㅠ \n");
}
printf("\n 계속 하려면 아무 키나 누르세요... ");
getchar();
}
printf("\n\n 발모제는 몇번일까요? : ");
scanf_s("%d", &answer);
if (answer == treatment + 1) {
printf("\n >> 정답입니다!\n");
}
else {
printf("\n >> 땡! 틀렸어요. 정답은 %d입니다.\n", treatment + 1);
}
return 0;
}
'Study > C' 카테고리의 다른 글
08. 다차원 배열 (0) | 2021.11.03 |
---|---|
07. 포인터 (Pointer) (0) | 2021.11.02 |
05. 함수 (0) | 2021.11.02 |
04. 조건 / 분기 (0) | 2021.11.02 |
03. 반복문 (0) | 2021.11.01 |