오늘 알아본 내용은 배열과 다차원 배열이다
배열이란 변수 여러개가 나열되어 있는 형태를 말하는데
일반적으로 변수를 사용할때 하는것과 같지만 끝에 대괄호 [ ] 를 붙여서 배열을 만들수가 있다.
위 그림처럼 name 변수 뒤에 [5]를 입력해 5개의 배열을 만들어 주었다.
그리고 각각을 name[0] = 1, name[1] = 3.... 이런식으로 할당할수도 있지만
브라켓을 이용해 그림처럼 한번에 할당할수도 있다.
그리고 배열이 5이라고 했을때 배열은 0부터 시작하기 때문에 4까지 총 5개의 배열을 만든다는 점을 주의 해야한다.
이때 대괄호 안의 숫자를 배열 번호(배열 인덱스)이라고 한다.
위 그림은 반복문을 이용해 배열 내의 모든 숫자를 모두 출력하는 프로그램을 만든것이다.
8번째 줄을 보면 'name[%d]'에 i의 값이 들어가서 0부터 4까지의 수를 출력했고
'= %d'에 name[i]의 값이 들어가 각 name[0~4]까지의 숫자, 즉 1, 4, 5, 6, 7을 출력했다.
그렇게 해서 나온 결과이다.
출력되는 대괄호 안에는 0~4의 값이,
= 뒤에는 각 배열에 해당하는 수가 출력이 되었다.
다음으로는 다차원 배열에 대해서 알아보았다.
배열과 비슷하지만 대괄호를 두개 이용해 3*3 총 9개의 변수를 할당할 수 있게 한다.
그림에서 나온 첫번째 반복문은 각 반복문에 i x k의 값을 할당하는 반복문이고
13번째 줄부터 있는 반복문은 [i][k] 배열을 3x3 사각형으로 볼수 있게 만든 반복문이다.
그렇게 해서 나온 결과이다.
하나씩 살펴보면 먼저 i = 0이 된 상태에서 k가 0~2까지 출력이 된다
그렇다면 0 x 0, 0 x 1, 0 x 2가 되어 첫번째 줄에 0 0 0이 출력되고
그다음 i = 1이 되고 1 x 0, 1 x 1, 1 x 2 이고 0 1 2
i = 2 일땐 2 x 0, 2 x 1, 2 x 2가 되어 0 2 4가 출력이 된다.
또 다차원배열을 하나하나 정해서 할당할 수도 있는데
이때 브라켓을 두번 사용하여 할당하면 된다.
마지막 브라켓에는 ;도 넣어주어야 한다.
오늘 강의도 짧은 대신 연습 프로그램을 만들어 보았다.
*크기가 20인 배열을 만들고 각각의 배열 원소에 2, 4, 6, 8,.... 의 수열을 할당하여 해당 배열을 출력하세요(반복문 사용)
이 문제는 간단하게 배열을 20개 먼저 만든 후, i를 20까지 진행되게 한 다음 배열을 하나씩 늘려가며 i에 2를 곱하면 만들 수 있다.
간단하게 해결 후 다음문제로 넘어갔다.
*크기가 20인 배열을 만들고 각각의 배열 원소에 피보나치 수열을 할당하여 해당 배열을 출력하세요(반복문 사용)
여기서 피보나치 수열이란 첫째 및 둘째 항이 1 이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다.
일단 피보나치는 첫번째 두번째 항이 1이라 했으므로 그에맞게 할당하였고
기본적으로 3번 수는 1, 2의 합, 4는 2, 3의 합이므로 (i - 1) + (i - 2)로 i를 할당하여 이번에도 쉽게 문제를 풀었다.
*크기가 10x10인 이차원 배열을 만들고 각각의 배열 원소에 원소를 1~100까지 할당한 후 해당 배열을 출력하세요(반복문 사용)
이번 문제도 생각보다 쉬웠다.
i의 수가 하나 커질때마다 10의자리 수가 하나씩 늘어나므로 i x 10을 하여 자리수를 바꿧고
k는 하나씩 증가시키면 문제 해결이다
이렇게 세가지 문제를 모두 풀어보았다.
후기 :
배열은 앞으로도 많이 나온다고 한다.
아직까지는 쉽게 나오지만 뒤로 갈수록 배운것들이 융합되며 더 어려운 문제가 나오겟지?
뒤의 목차를 보니 매우 어려워보이는 제목이였는데 얼른 배워보고 싶다.
*본 포스팅은 학생의 입장에서 쓴 글로 정확하지 않을 수 있으며 댓글로 피드백해 주시면 감사하겠습니다.
클래스 101 개발자 라라 님의 강의를 통해 학습한 내용을 기반으로 두고 있습니다.
'내가 꾸는 꿈' 카테고리의 다른 글
헤더파일, 소스파일 [노베이스 게임개발 9일차] (0) | 2023.02.11 |
---|---|
형변환, 구조체 [노베이스 게임개발 8일차] (0) | 2023.02.09 |
반복문의 제어, 중첩 [노베이스 게임개발 6일차] (0) | 2023.02.06 |
함수 응용 문제 [노베이스 게임개발 5일차] (0) | 2023.02.04 |
함수 연습문제, 조건문, 반복문 [노베이스 게임개발 4일차] (0) | 2023.02.03 |