티스토리 뷰

반응형

개발자의 C언어 독학 기초 # 다중 배열의 기초

모든 강의 자료 : www.codingnow.co.kr/

배열 두번째 강의로

첫번째 강의 : https://cflab2017.tistory.com/13

 

개발자의 C언어 독학 기초 # 배열의 기초

개발자의 C언어 독학 기초 # 배열의 기초 배열은 선언된 변수 타입의 집합이라고 할 수 있다. 즉 int로 배열의 type을 선언하면 int 형의 값들만 가지게 된다. 변수의 선언은 다음과 같이 선언하지만 int a = 0; /..

cflab2017.tistory.com

이번 시간엔 2차원 배열에 대해 설명하려 한다.

배열은 2차 3차 ... 가 있지만 2차원 배열만 이해하면 나머지 비슷하기 때문에 어렵지 않다.

(이전 강의를 이해를 바탕으로 소스 코드를 비교해 보면 차이점을 명확하게 알 수있다.)

아래 코드는 이전 1차원 배열 구조에서 최소한의 변경을 통해 2차원 배열로 구성한것이다.

실무에서 다중 배열은 많이 사용된다. 코드의 간결화 또는 data의 효율적 호출에 큰 도움이 된다.

배열의 익숙하도록 과제를 하나 낸다면 num1, num2를 num[2] 로 변경해서 코드를 변경해 보길 바란다.

 

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

void main(void)
{
	int num1, num2, result, sum;
	int score;
	system("chcp 65001"); //gcc 한글 깨짐
	system("cls"); //화면지움
	
	//int arr1[10] = {1,2,3,4,5,6,7,8,9,10};
	//int arr2[10] = {10,20,30,40,50,60,70,80,90,100};
		
	int arr[2][10] = {
			{1,2,3,4,5,6,7,8,9,10},
			{10,20,30,40,50,60,70,80,90,100}
		};
		
	score = 0;
	for(int cnt=0; cnt<10; cnt++)
	{
		num1 = arr[0][cnt];
		num2 = arr[1][cnt];
		
		sum = num1+ num2; //답을 구한다.

	//문제를 출제한다.
		printf("\n %02d번째 문제 %d + %d = ",(cnt+1), num1, num2);
		
	//답을 입력받는다.
		scanf("%d", &result);

	//결과를 표시한다.
		if(sum == result)
		{
			printf("       정답입니다.\n");
			score += 10;
		}else{
			printf("       오답입니다. 정답은 %d 입니다.\n", sum);
		}
	}
	printf("-------------------------------------\n");
	printf(" 100점 만점에 %d입니다.\n",score);
	printf("-------------------------------------\n");
	
	system("pause");	
	return;
}
반응형