본문 바로가기
컴퓨터 프로그래밍/c 언어 (c programming language)

C 언어 - 배열(Arrangement)

by JaeBaek 2020. 9. 27.

Arrangement (Noun Project)

배열

 배열은 같은 자료 형을 갖는 여러 개의 변수를 선언하는 자료형입니다. 변수를 사용하기 전에 선언하는 것처럼 배열도 선언을 해야합니다. 배열을 선언하는 방법은 기본 자료형 변수를 선언하는 방법과 유사합니다. 

배열 선언 형식 배열원소자료형 배열이름[원소개수];

 

보통 변수를 선언할 때 int num=1; 과 같이 한꺼번에 선언을 하고 값을 할당합니다. 그와 같은 방법으로 배열도 선언과 동시에 초기화를 할 수 있습니다.

배열 초기화 형식 배열원소자료형 배열이름[원소개수]={초기값, ... , 초기값};

배열의 index값은 첫 번째 원소를 0으로 시작해서 n번째 원소를 n-1로 사용하여 참고 할 수 있습니다. 예를들어서 a[0]의 배열의 원소값을 사용한다고 하면 a 배열의 첫 번째 원소를 사용한다는 말입니다. 

 

ex) 배열 선언

#include <stdio.h>

int main(void)
{
	int a[2]={3,2};
	char b[2]={'A','B'};
	int i;
	for (i=0;i<2;i++){
		printf("%c=%d\n",b[i],a[i]);
	}
    printf("%s",b);
 }
 
※ result
A=3
B=2
AB

 위 예제의 코드를 보면 알 수 있듯이 문자열의 배열은 ' ' 을 사용하여 원소를 적고, 각 배열의 원소를 사용하기 위해서 for문을 사용하는 것을 볼 수 있습니다. 배열의 첫 원소가 a[0], b[0] 이기 때문에 for문의 초기화도 i=0으로 합니다.

 

 

■ 2차원 배열 선언과 초기화

2차원 배열이란 배열의 첨자가 두 개인 배열로, 2차원 배열의 선언 방법은 1차원 배열의 선언 방법과 유사합니다. 배열을 선언하고 값을 할당하는 방법과 선언과 동시에 초기화를 하는 방법이 있습니다. 

2차원 배열
선언 형식
배열원소자료형 배열이름[원소개수1][원소개수2];
2차원 배열
초기화 형식
배열원소자료형 배열이름[원소개수1][원소개수2]={{값, ... ,값}, ... , {값, ... , 값}}

2차원 배열같은 경우에는 행렬을 생각하시면 됩니다. 하지만 제일 처음 시작하는 원소의 값에 대한 첨자는 0,0입니다. 

크기가 nXn인 배열인 변수 a가 있다고 했을 때 제일 왼쪽 상단의 원소는 a[0][0]으로 표현을 할 수 있고, 제일 오른쪽 하단의 원소는 a[n-1][n-1]으로 표현을 할 수 있습니다.

 

 

 

 

 

 

Exercise

사용자 입력 값으로 원소의 개수와 그에 해당하는 원소 값들을 입력받아 배열에 저장한 후 대칭수열인지 판단하는 프로그램을 작성하시오.

#include <stdio.h>

int main(void)
{
	int n;

	printf("원소의 개수 : ");
	scanf("%d",&n);
	int b[n];
	int i;
	int s=1;
	
	for (i=0;i<n;i++){
		printf("%d 번째 원소 입력 : ",i);
		scanf("%d",&b[i]);}

	for (i=0;i<(n/2);i++){
		if (b[i]!=b[(n-i-1)]){
			s=0;
			break;}
	}
	
	if (s==1)
		printf("대칭행렬입니다.");
	else
		printf("대칭행렬이 아닙니다.");
 }
 
 ※ result
 원소의 개수 : 6
0 번째 원소 입력 : 1
1 번째 원소 입력 : 2
2 번째 원소 입력 : 3
3 번째 원소 입력 : 3
4 번째 원소 입력 : 2
5 번째 원소 입력 : 1
대칭행렬입니다.

 

'컴퓨터 프로그래밍 > c 언어 (c programming language)' 카테고리의 다른 글

C 언어 - 구조체(Structure)  (0) 2020.09.27
C 언어 - 포인터(Pointer)  (0) 2020.09.27
C 언어 - 함수  (0) 2020.09.27
C 언어 - 반복문(Loop)  (0) 2020.09.26
C 언어 - 조건문  (0) 2020.09.26

댓글