C

C언어(6) 기초6

사회적가치누리 2024. 11. 13. 19:25
목차
19.프로젝트
20.배열

 

19.프로젝트

 

프로젝트를 하기전에 항상 적는 int main (void)에 대해서 다시한번 복습해보겠습니다.

int > int 형으로 정수형 자료를 반환 그래서 return 0을 해주는 겁니다.

void(전달값이 없는)main이라는 함수 이름

 

이제 프로젝트를 만들겠습니다.

 

조건은 다음과 같습니다.

문이 5개가 있고, 각 문마다 점점 어려운 수식 퀴즈가 출제 (랜덤)

맞히면 통과, 틀리면 실패

 

#include <stdio.h>
#include <time.h>

int getRandomNumber(int level);
void showQuestion(int level, int num1, int num2);
void success();
void fall();

int main(void)
{
	srand(time(NULL));
	int count = 0; // 맞힌 문제 갯수
	for (int i = 1; i <= 5; i++)
	{
		int num1 = getRandomNumber(i);
		int num2 = getRandomNumber(i);
		/*printf("%d x %d ?", num1, num2);*/
		showQuestion(i, num1, num2);

		int answer = -1;
		scanf_s("%d", &answer);
		if (answer == -1)
		{
			printf("프로그램 종료\n");
			exit(0); // 프로그램 바로 종료
		}
		else if (answer == num1 * num2)
		{
			//성공
			success();
			count++;
		}
		else
		{
			//실패
			fall();
		}
	}
	printf("\n\n 당신은 5개의 비밀번호 중 %d 개를 맞쳤습니다.\n",count);
	return 0;
}

int getRandomNumber(int level)
{
	return rand() % (level * 7) + 1;
}
void showQuestion(int level, int num1, int num2)
{
	printf("\n\n\n######### %d 번째 비밀번호 #########\n", level);
	printf("\n\t%d x %d 는?\n\n", num1, num2);
	printf("####################################\n");
	printf("\n비밀번호를 입력하세요 (종료 : -1) >> ");
}
void success()
{
	printf("\n >> Good ! 정답입니다. \n");
}
void fall()
{
	printf("\n >> 땡! 틀렸습니다. \n");
}

 

 

20.배열

 

배열이란 같은 종류의 여러 데이터를 한 줄에 깔끔하게 정리해 놓는 상자라고 생각하시면 이해하기 쉽습니다.

 

배열을 선언하는 방법은 자료형과 크기를 함께 정의하고 선언합니다.

예) (점수를 저장하는 배열) int score[5] = {50,60,25,10,80}

// 여러 개의 변수를 함께, 동시에 생성
int subway_array[3];
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];

for (int i = 0; i < 10; i++)
{
	printf("%d\n", arr[i]);
}
return 0;

 

따라서 무조건 값은 초기화를 해야합니다.

 

그리고 배열 크기는 항상 상수로 선언합니다.

 

근데 만약 아래와 같이 배열의 값을 일부분만 초기화를 시켜주면 어떻게 나올까요?

int arr[10] = { 1,2 };
for (int i = 0; i < 10; i++)
{
	printf("%d\n", arr[i]);
}
return 0;

그외 나머지 값은 0으로 나오게 됩니다.

 

float arr_f[5] = { 1.0f,2.0f,3.0f};

for (int i = 0; i < 5; i++)
{
	printf("%.2f\n", arr_f[i]);
}

float 값도 0.00으로 나오게 됩니다.

'C' 카테고리의 다른 글

C언어(8) 기초8  (0) 2024.11.18
C언어(7) 기초7  (0) 2024.11.16
C언어(5) 기초5  (0) 2024.11.12
C언어(4) 기초4  (0) 2024.11.11
C언어(3) 기초3  (0) 2024.11.08