
C언어 스케치 연습문제 솔루션 - 제 07장 배열
본 내용은
"
C언어 스케치 연습문제 솔루션 - 제 07장 배열
"
의 원문 자료에서 일부 인용된 것입니다.
2023.02.18
문서 내 토픽
-
1. 배열배열(array)은 변수를 일일이 선언하는 번거로움을 해소할 수 있고, 여러 변수들이 같은 배열이름으로 일정한 크기의 연속된 메모리에 저장되는 구조로 그 사용도 간편하다. 배열선언 시 초기 값 지정이 없다면 반드시 배열크기는 명시되어야 한다. 배열의 크기를 지정하는 부분에는 변수, 양수의 정수 상수와 기호 상수 또는 이들의 연산식이 올 수 있다. 첫 번째 배열원소를 접근하는 첨자 값은 0이며, 다음 두 번째 원소는 1이다. 배열선언 후 배열원소를 접근하려면 배열이름 뒤에 대괄호 사이 첨자(index)를 이용한다. 배열에서 첨자의 유효 범위를 벗어나 원소를 참조하면 실행오류가 발생한다. 배열선언 초기화 구문은 배열선언을 하면서 대입연산자를 이용하며 중괄호 사이에 여러 원소 값을 쉼표로 구분하여 기술하는 방법이다. 배열선언 초기화 구문에서 배열크기는 생략할 수 있는데, 생략하면 중괄호 사이에 기술된 원소 수가 배열크기가 된다. 이차원 배열선언 시 초기 값을 저장하지 않아도 행의 크기는 생략할 수 있다. 이차원 배열선언은 2개의 대괄호가 필요하며, 첫 번째 대괄호에는 배열의 열 크기, 두 번째는 배열의 행 크기를 지정한다.
-
2. 배열 선언배열은 한 자료유형의 저장공간인 원소를 동일한 크기로 지정된 배열크기만큼 확보한 연속된 저장공간이다. 배열을 구성하는 각각의 항목을 배열의 원소(elements)라 한다. 이차원 배열은 테이블 형태의 구조를 나타낼 수 있으므로 행(row)과 열(column)의 구조로 표현할 수 있다. 이차원 배열선언 int num[3][4]으로 할당되는 배열원소 수는 12개이다. 배열을 선언하면서 동시에 원소 값을 손쉽게 저장하는 배열선언 초기화(initialization) 방법을 제공한다. 문자형 배열에서 배열크기가 초기값 원소 수보다 크면 지정하지 않은 원소의 초기 값은 자동으로 문자형은 '\0'인 널문자가 자동으로 채워진다.
-
3. 배열 연산연산자 sizeof를 이용한 식 ( sizeof(배열이름) / sizeof(배열원소) )의 결과는 배열크기이다. 이차원 배열의 행과 열에서 첫 번째 행의 모든 원소가 메모리에 할당된 이후에 순차적으로 연속된 메모리에 두 번째 행의 원소가 할당된다. C 언어와 같은 배열의 이러한 특징을 행 우선 배열이라 한다. 이차원 배열선언 초기값 지정에서 첫 번째 대괄호 내부의 행의 크기는 명시하지 않을 수 있다. 이차원 배열 int x[2][3]의 행의 수는 연산자 sizeof를 이용한 식( sizeof(x) / sizeof(x[0])로 계산할 수 있다.
-
4. 배열 활용배열크기로 변수는 사용할 수 없다. 배열원소의 자료형으로 모든 기본 자료형을 사용할 수 있다. 배열은 다차원 배열을 사용할 수 있다. 배열은 함수의 인자로 사용할 수 있다. 함수 인자는 int형 배열과 배열크기이며, 배열의 원소를 모두 곱한 값을 반환하는 함수 mult()를 구현할 수 있다. 함수 인자는 double형 배열과 배열크기이며, 배열의 원소의 평균 값을 반환하는 함수 average()를 구현할 수 있다. 함수 인자는 double [][3]이차원 배열과 행 크기 그리고 열 크기이며, 배열의 원소의 평균 값을 반환하는 함수 average3D()를 구현할 수 있다.
-
5. 배열 문제 해결배열을 사용하여 98.56, 78.62, 78.69, 89.32, 95.29를 초기화하고 출력하며, 배열의 총합과 평균을 구하여 출력하는 프로그램을 작성할 수 있다. 0에서 9까지의 정수 중에서 20개의 수를 입력 받아 가장 많이 입력 받은 빈도 수와 그 수를 출력하는 프로그램을 작성할 수 있다. 달의 말일을 배열 month에 저장하고 년과 달을 표준입력으로 받아 그 해 그 달의 말일을 출력하는 프로그램을 작성할 수 있다. 반복문을 이용하여 1/(2*3), 1/(3*4), 1/(4*5), ..., 1/(11*12)의 수를 배열에 10개에 순서대로 저장하고 이 값을 출력하는 프로그램을 작성할 수 있다.
-
6. 이차원 배열 활용이차원 배열을 사용하여 [C 프로그래밍] 점수를 저장하고, 각 학생 당 합과 평균을 구하여 출력하는 프로그램을 작성할 수 있다. 4 x 3의 행렬에서 두 행렬의 합과 차를 구하는 프로그램을 작성할 수 있다. 3 x 2와 2 x 3의 두 행렬에서 행렬의 곱을 구하는 프로그램을 작성할 수 있다. 여러 과목의 학점 수와 성적을 입력 받아 이번 학기의 평균평점을 출력하는 프로그램을 작성할 수 있다.
-
7. 난수와 배열0에서 9까지 난수 80개를 생성하여 그 빈도 수를 저장하고, 난수의 평균을 구하여 출력하며, 출현 빈도 수를 출력하고 *로 막대그래프를 출력하고, 빈도수 가장 많은 수와 가장 적은 수를 출력하는 프로그램을 작성할 수 있다.
-
1. 주제2: 배열 선언배열을 선언할 때는 데이터 타입과 크기를 지정해야 합니다. 데이터 타입은 배열에 저장될 데이터의 종류를 나타내며, 크기는 배열에 저장될 수 있는 요소의 개수를 나타냅니다. 배열의 크기는 고정되어 있으므로 배열의 크기를 초과하여 데이터를 저장하려고 하면 오류가 발생합니다. 따라서 배열의 크기를 적절하게 설정하는 것이 중요합니다. 배열은 선언과 동시에 초기화할 수 있으며, 초기화하지 않으면 기본값으로 초기화됩니다. 배열 선언 시 주의해야 할 점을 잘 이해하고 실습을 통해 익숙해져야 합니다.
-
2. 주제4: 배열 활용배열은 프로그래밍에서 다양한 방식으로 활용됩니다. 예를 들어 배열은 리스트, 스택, 큐 등의 자료 구조 구현에 사용되며, 행렬 연산, 이미지 처리, 신호 처리 등 다양한 분야에서 활용됩니다. 또한 배열은 반복문과 함께 사용되어 효율적인 데이터 처리를 가능하게 합니다. 배열의 다양한 활용 사례를 이해하고 실습을 통해 배열을 효과적으로 활용할 수 있는 능력을 기르는 것이 중요합니다. 배열은 프로그래밍의 기본이 되는 데이터 구조이므로 배열 활용 능력을 높이는 것은 프로그래밍 실력 향상에 도움이 될 것입니다.
-
3. 주제6: 이차원 배열 활용이차원 배열은 행과 열로 구성된 2차원 데이터 구조입니다. 이차원 배열은 행렬 연산, 게임 개발, 이미지 처리 등 다양한 분야에서 활용됩니다. 이차원 배열을 활용하면 2차원 데이터를 효과적으로 표현하고 처리할 수 있습니다. 이차원 배열의 선언, 초기화, 접근, 조작 등 기본 개념을 이해하고 실습을 통해 익숙해지는 것이 중요합니다. 또한 이차원 배열을 활용한 문제 해결 능력을 기르는 것도 중요합니다. 이차원 배열은 프로그래밍에서 매우 유용한 데이터 구조이므로 이를 효과적으로 활용할 수 있는 능력을 기르는 것이 필요합니다.