SECTION 5 ) 배열
배열은 여러 개의 변수를 함께, 동시에 생성
배열 값 설정 방법
EX)int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
배열의 값을 설정할 땐 변수 X 무조건 상수
값보다 선언 수가 적을 경우엔 0
arr[]={1,2,3} <- 이런 식으로 설정해도 ㄱㅊ
문자 VS 문자열
문자열 EX)char str[4]="HI!" <- [H][I][!][\0]
문자열 끝에는 '끝을 의미하는 NULL 문자 '\0'이 포함되어야함
//영어는 1글자 : 1byte
//한글은 2글자 : 2byte
문자열 심화
아스키 코드 값 출력 <- NULL은 0
각 문자 당 아스키 코드 값이 있음
참고 : 아스키 코드? 미국표준협회에서 제시한 표준 코드 체계
7bit 총 128개의 코드 (0~127)
참고 0~127 사이의 아스키코드 정수값에 해당하는 문자 확인은%c 이용
#include <stdio.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
printf("\n\n===아빠는 대머리 게임을 시작합니다===\n\n");
int answer; //사용자 입력값
int treatment = rand() % 4; //발모제 선택
int cntShowBottle = 0; //이번 게임에서 보여줄 병 개수
//3번의 기회
for (int i = 1; i <=3; i++)
{
int bottle[4] = {0,0,0,0};//4개의 병
cntShowBottle = rand() % 2 + 2; //보여줄 병 개수 2 or 3
int isincluded = 0;
printf("%d번째 시도\n\n",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\n");
if (isincluded == 1)
{
printf("머리가 자라났습니다\n\n");
}
else
{
printf("대머리가 그대로입니다\n\n");
}
printf("계속 하려면 아무나키나 누르세요\n\n");
}
printf("\n발모제는 몇 번일까요?\n");
scanf_s("%d", &answer);
if (answer==treatment+1)
{
printf("정답입니다");
}
else
{
printf("떙 틀렸어요 정답은 %d", treatment+1);
}
return 0;
}
//getchar()을 하면 계속 두번째와 세번째 시도가 같이 나와서 빡쳐서 걍 지워버렸음 왜인지는 아직도 모름
//서로 보여주는 병 개수를 달리하지 않아도 달리 나오길래 걍 없애버림
C 프로그래밍 - 입문부터 게임 개발까지 - 인프런
C 는 조금 어렵지만, 아주 기본이 되는 언어입니다. C 를 마스터 하고 나면, 다른 언어는 굉장히 쉽게 배울 수 있습니다. 그리고, 나도코딩이 깜짝! 놀랄만큼 쉽게 알려드리겠습니다. C 프로그래밍
www.inflearn.com
'프로그래밍 공부흔적 > C' 카테고리의 다른 글
[C] 인프런 나도코딩 4일차 S6(포인터) (0) | 2020.08.12 |
---|---|
[C] 인프런 나도코딩 2일차 S3(조건&분기) S4(함수) (0) | 2020.07.31 |
[C] 인프런 나도코딩 1일차 S1(변수, 상수, 입출력) S2(반복문) (0) | 2020.07.31 |
비주얼 스튜디오 유용한 단축키 10가지 (0) | 2020.07.29 |
댓글