Search

LV04 배열

배열은 같은 타입의 변수들로  이루어진 집합이다.
우리는 배열을 다음과 같이 두가지 요소로 표현 할수 있습니다.
1.
배열의 시작 주소
2.
배열의 값의 크기
배열의 초기화 그리고 각 인덱스에 접근해서 배열에 메모리위치에 변수를 사용 가능하다.
여기서 우리는 각 데이터의 시작 주소를 쉽게 계산할 수 있습니다.
시작 주소
인덱스
1
1000+4∗0
0
2
1000+4∗1
1
3
1000+4∗2
2
4
1000+4∗3
3
5
1000+4∗4
4
이를 바탕으로 우리는 왜 인덱스가 1이 아닌 0부터 시작하는지에 대한 이유를 알 수 있습니다.
배열의 시작주소에서 item size에 인덱스를 곱한 값을 더하면 바로 각 item의 시작 주소를 계산할 수 있기 때문이죠.
// 기본적인 형태 #include <iostream> int main() { int arr[5] = { 1,2,3,4,5 }; // 숫자형(int) 배열 arr(배열의 이름) 의 길이는 5([5])이고 값은 {1,2,3,4,5} return 0; }
C++
복사
#include <iostream> int main() { int arr[5] = { 1,2,3,4,5 }; int index = 0; // 배열의 첫 번째 인덱스는 0이다. // 왜? 배열의 시작주소에서 item size에 인덱스를 곱한 값을 더하면 // 바로 각 item의 시작 주소를 계산할 수 있다. std::cout << arr[0]; // 1; index = 5; std::cin >> index; std::cout << arr[index]; // 지정되지 않은 값이다 return 0; }
C++
복사
배열은 반복문과 같이 쓰일때 무궁무진한 활용성을  보여줄수 있다.
#include <iostream> int main() { int arr[5] = { 1,2,3,4,5 }; for (int i = 0; i < i++) { std::cout << arr[i]; // i값을 인덱스로 활용 } return 0; }
C++
복사

연습문제

문제 1번
for문을 사용해서 숫자 5개를 입력 받으세요
다시 for문을 돌려 배열의 값을 출력하세요
ex)

입력 예시

3 5 2 6 7

출력 예시

3 5 2 6 7
문제 2번
위 배열을 하드코딩 해주세요.
숫자 하나를 입력 받고, 입력 받는 index에 해당하는 배열 값을 출력 하세요.

입력 예시

3

출력 예시

3번index의값은6입니다
문제 3번
for문을 돌려 숫자 7개를 배열에 입력 받아주세요.
배열 첫번째 칸에 있는 숫자와
배열 마지막 칸에 있는 숫자를 더해
출력 해 주세요
만약 4 5 7 8 9 10 11 을 입력했다면,
배열에 입력을 받고
4와 11을 더 한 값인 15를 출력하면 됩니다.

입력 예시

4 5 7 8 9 10 11

출력 예시

15
문제 4번
숫자 1개 입력 받고,
입력 받은 숫자에 +5를 한 후
이 값으로 배열에 채워주세요
그리고 다시 for문을 돌려 배열값을 출력 해주세요.
ex)
입력 : 3
출력 : 8 8 8 8 8

입력 예시

3

출력 예시

8 8 8 8 8
문제 5번
아래 arr배열을 하드코딩 해주세요.
숫자 2개를 a, b 변수에 입력 받고,
그리고 arr[a]와 arr[b]의 합을 출력 해주세요

입력 예시

2 4

출력 예시

8
문제 6번
위 배열을 하드코딩 하세요.
숫자 1개 입력 받고,
입력받은 숫자 index에 해당하는 값이
2보다 크면(>) "우와" ,  아니면 "ㅠㅠ" 를 출력 해주세요.

입력 예시

1

출력 예시

ㅠㅠ
문제 7번
아래 숫자 5개를 배열에 하드코딩한 후, 숫자 1개(index)를 입력 받으세요
arr[index] 값에 100을 뺀 결과를 출력하세요
ex)
4를 입력했다면, 4번 index의 값에 100을 빼면 됩니다.
243 - 100 = 143

입력 예시

3

출력 예시

19
문제 8번
숫자 하나를 입력 받으세요
만약 그 숫자가 5보다 크면
-> for문을 돌려 1부터 10까지 출력 해 주세요.
그렇지 않으면
-> for문을 돌려 5부터 1까지 출력 해 주세요.
힌트 : if와 for문을 적절히 사용하시면 됩니다.

입력 예시

3

출력 예시

5
4
3
2
1
문제 9번
위와 같이 5칸짜리 배열에 값을 하드코딩으로 채운 후
배열 값을 거꾸로 출력 하세요.

출력 예시

7 4 3 2 5
문제 10번
배열을 6칸을 선언 해 주세요
숫자 1개를 입력 받으세요
그리고 그 숫자부터 1씩 작은 숫자를 각 배열칸에 채워 주세요
그리고 2번 index의 값을 출력 해 주세요 (힌트 : cout << arr[2]; )
예로들어서 8을 입력 받았다고 한다면
8
7
6
5
4
3
이렇게 채워주시고 2번 index의 값은 6이기 때문에
숫자 6을 출력 해 주시면 됩니다.
[힌트]
for (x=0; x<6; x++)
{
arr[x] = ........;
}

입력 예시

8

출력 예시

6
문제 11번
숫자 4개 4칸짜리 배열 입력 받고,
for문 돌려 sum을 구한 후,  sum값을 출력 해주세요.
[힌트]
sum=sum+arr[x];
ex)
출력: 12

입력 예시

3 3 5 1

출력 예시

12
문제 12번
아래의 배열을 하드코딩해 주세요.
index값 하나를 입력받아 주세요.
입력된 index값 부터 배열 끝까지 출력 해 주세요.
ex)
3을 입력하셨다면
index 3번 부터 끝까지인
2
33
57
82
8
13
1
을 출력하시면 됩니다.

입력 예시

5

출력 예시

57
82
8
13
1

훈련문제

문제 1번
다음과 같은 배열을 하드코딩 해 주세요.
3
2
6
7
1
8
그리고 숫자 하나를 입력받고, 그 숫자 위치에 있는 값을 출력 해 주세요.
ex)
2를 입력 했다면, 2번 index에는 값이 6이 들어 있기 때문에
출력 결과는 6 입니다.

입력 예시

0

출력 예시

3
문제 2번
복잡한 조건이 아래와 같이 주어집니다. 잘 읽고 풀어주세요
숫자 1개를 입력 받으세요
만약 그 숫자가 3이 아니라면
"3이 아니다" 라고 출력 해 주세요
만약 그 숫자가 5가 아니라면
"5가 아니다" 라고 출력 해 주세요
만약 그 숫자가 1보다 크고 10보다 작은 숫자라면
for문을 돌려 5부터 1까지 출력 해 주세요.

입력 예시

4

출력 예시

3이 아니다
5가 아니다
5
4
3
2
1
문제 3번
5칸 짜리 배열을 선언하세요
그리고 숫자를 하나 입력 받고,
그 숫자로 배열을 꽉 채워주세요
그리고 다시 for문을 돌려 출력 해 주세요

입력 예시

3

출력 예시

33333
문제 4번
다섯칸 짜리 배열을 만들어주세요.
그리고 다음과 같이 하드코딩한 후
for문을 돌려 출력 해 주세요
(* 하드코딩 : cin로 입력받지 않고, 소스코드에 숫자를 적어두는 것을 뜻함)
1
7
3
2
6

출력 예시

17326
문제 5번
배열에 값 7개를 입력 받고 난 뒤
0번 index값 + 1번 index값 + 2번 index값 을 출력 해주세요.
ex)
3+5+4 = 12
출력: 12

입력 예시

3 5 4 2 1 1 2

출력 예시

12
문제 6번
아래의 배열을 하드코딩 해 주세요.
그리고 숫자 3개 입력받고 숫자 3개의 합을 구해주세요
sum이 10보다 크면 맨 마지막칸을 출력
그렇지 않다면 첫번째 칸을 출력해 주세요.

입력 예시

1 2 3

출력 예시

3
문제 7번
아래의 배열을 하드코딩해 주세요.
index값 하나를 입력받아 주세요.
입력된 index값 부터 배열 첫번째 까지 출력 해 주세요.
ex)
4를 입력 받으셨다면
4번 index부터 배열 첫번째 까지인
4
8
1
7
5
를 출력 해 주시면 됩니다.

입력 예시

5

출력 예시

73
4
8
1
7
5
문제 8번
숫자 1개를 입력 받으세요
그 숫자부터 1씩 증가되는 숫자를
6칸짜리 배열에 채워주세요
만약 3을 입력받았다면
이렇게 배열에 채우고 출력하시면 됩니다.
3
4
5
6
7
8

입력 예시

3

출력 예시

3
4
5
6
7
8
문제 9번
4칸짜리 배열을 만들고, 배열을 0으로 초기화 해주세요.
숫자 2개를 입력하고
입력한 숫자 2개를 0번 index와 2번 index에 넣어주세요.
ex)
입력 : 3 5
출력 : 3050

입력 예시

3 5

출력 예시

3050