배열
배열은 같은 자료 형을 갖는 여러 개의 변수를 선언하는 자료형입니다. 변수를 사용하기 전에 선언하는 것처럼 배열도 선언을 해야합니다. 배열을 선언하는 방법은 기본 자료형 변수를 선언하는 방법과 유사합니다.
배열 선언 형식 | 배열원소자료형 배열이름[원소개수]; |
보통 변수를 선언할 때 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 |
댓글