Rylah's Study & Daily Life

06. 배열 (Array) 본문

Study/C

06. 배열 (Array)

Rylah 2021. 11. 2. 12:12
#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