Post

C언어 array(배열) 알아보기

#C #array

이제 본격적으로 array(배열)을 다룰 차례다. 2차원 배열은 행렬로 표현된다. C언어에서 배열은 array[m][n]와 같이 표현할 수 있다. 여기에서 array는 배열의 이름이고, 뒤의 [m][n]m*n 매트릭스라는 뜻이다. 괄호가 하나면 벡터로 표현할 수 있다. 그래서 다음의 코드를 짜보았다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include  <stdio.h>
int  main()
{
	int  i=3, j=2;
	int  M[i][j];
	int  k;

	for (k=0; k<i; k++) {
		M[k][0] = k+1;
		M[k][1] = 10/(k+1);
	}

	printf("%d  \t", M[0][0]);
	printf("%d  \n", M[0][1]);
	printf("%d  \t", M[1][0]);
	printf("%d  \n", M[1][1]);
	printf("%d  \t", M[2][0]);
	printf("%d  \n", M[2][1]);

	return  0;
}

우선 i*j 행렬을 만들었는데, 그 행렬을 M으로 정의했다. 그리고 for문을 통해 매트릭스의 1열에는 각 열의 번호를 지정했고, 2열에는 10j로 나눴을 때의 몫을 썼다. 이렇게 하고 프린트하면

1
2
3
1       10
2       5
3       3

이렇게 배열이 프린트가 될 것이다. C언어를 공부하면서 한 가지 아쉬웠던 것은, MATLAB 등의 언어는 매트릭스 자체를 프린트 하는 것도 가능한데, 내가 지금까지 검색해본 바로는 C언어는 일일이 프린트를 해줘야한다는 점이다. (이 때 for를 이중으로 해서 사용). 물론 C언어가 많이 빨라서 이중 루프를 써도 속도에 크게 지장은 없을테지만, 불필요하게 코드를 많이 짜야하는 점이 아쉬웠다. 그래서 통계 등의 연산이 필요한 사람에게 C는 좀 과한 언어이면서 아쉬운 언어라는 건가 보다. Julia를 배울 이유가 하나 더 생겼다.

This post is licensed under CC BY 4.0 by the author.