C Language

1,2,3 차원 배열과 char형 배열

Fullstacknology 2022. 5. 18. 01:17

1차원 배열의 사용 예 1

#include <stdio.h>

void main() {

	int array1[4] = { 10, 20, 30, 40 };
	int array2[] = { 10, 20, 30, 40 };
	int array3[4] = { 10 ,20 };				// 10, 20, 0, 0 으로 출력 
	int array4[4] = {0};					// 배열 값 전부가 0으로 출력
	int i;

	for (i = 0; i <= 3; i++)
		printf("array1[%d] = %d \t", i, array1[i]);
	printf("\n");

	for (i = 0; i <= 3; i++)
		printf("array2[%d] = %d \t", i, array2[i]);
	printf("\n");

	for (i = 0; i <= 3; i++)
		printf("array3[%d] = %d \t", i, array3[i]);
	printf("\n");

	for (i = 0; i <= 3; i++)
		printf("array4[%d] = %d \t", i, array4[i]);
}

 

1차원 배열의 사용 예2

 

#include <stdio.h>

void main() {

	static int x[] = { 1, 2, 3, 4 };	// 1차원 배열의 선언과 초기화
	static int y[] = { 10, 20, 30, 40 };	// 1차원 배열의 선언과 초기화
	int i, z[4];

	for (i = 0; i < 4; ++i)
		z[i] = x[i] + y[3 - i];
	printf("반대 위치의 배열요소 합\n");
	
	for (i = 0; i < 4; ++i)
		printf("%d + %d = %d\n", x[i], y[3 - i], z[i]);
}

 

2차원 배열의 사용 예 

 

#include <stdio.h>;

void main() {

	static int score[4][3]{ {90, 90, 90},		// 2차원 배열의 선언과 초기화
				{80, 80, 80}, 
				{70, 70, 70}, 
				{60 ,60, 60}};

	int sum, i, j;

	printf("번호\t국어\t수학\t영어\t합계\n");

	for (i = 0; i < 4; ++i) {					// 행 출력
		sum = 0;
		printf("%3d", i + 1);

		for (j = 0; j < 3; j++) {				// 열 출력 
			printf("\t%3d", score[i][j]);
			sum += score[i][j];
		}
		printf("\t%3d\n", sum);
	}
}

 

 

3차원 배열의 사용 예

 

#include <stdio.h>

int main() {

	int matrix[2][4][5];                               // 면 행 열 순서대로 배열 선언
	int page, row, col;                                // 첨자로 사용 할 변수 선언
	int val = 0;                                       // 1~40까지의 변수 선언하고 초기값 0 선언

	for (page = 0; page < 2; page++) {
		for (row = 0; row < 4; row++) {
		for (col = 0; col < 5; col++) {
			matrix[page][row][col] = ++val;            // 값 할당
		}
		}
	}

	for (row = 0; row < 4; row++) {
		for (page = 0; page < 2; page++) {              // 1면의 4행까지 출력 후 2면 이 출력되어야 하므로 row for문 안에 page for문 작성 
			for (col = 0; col < 5; col++) {
				printf("%3d0", matrix[page][row][col]); // 할당 받은 값 출력, 한 행 부터 순차대로 출력 
		}
		printf("   ");
		}
		printf("\n");
	}
	return 0;
}

 

 

2차원 배열이 함수의 매개변수로 사용된 예

 

#include <stdio.h>

void score_sum(int gr[][5], int, int);
void main() {

	int score[2][5] = { {10, 20, 30, 40, 50},
					   {10, 10, 10, 10, 10,} };
	score_sum(score, 2, 5);
}

void score_sum(int gr[][5], int row, int column) {
	int sum[2] = { 0 };
	int i, j;
	for (i = 0; i < row; i++) {
		for (j = 0; j < column; j++)
			sum[i] += gr[i][j];
		printf("sum[%d] = %d\n", i, sum[i]);
	}
}

 

 

char형 배열의 사용 예1

 

#include <stdio.h>

void main() {

	char name[] = "HONG GIL DONG";				// 띄어쓰기 포함해서 14 정도의 기억공간 확보
	char adrs1[6] = { 'S', 'E', 'O', 'U', 'L', '\0' };
	char adrs2[6] = { 'S', 'E', 'O', 'U', 'L'};		// null 문자를 추가하지 않은 경우 SEOUL 다음에 쓰레기 값이 붙을 수 있음 

	printf(" name : %s", name);
	printf("\n adrs1 : %s", adrs1);
	printf("\n adrs2 : %s", adrs2);
}

 

 

char형 배열의 사용 예 2

 

#include <stdio.h>
# pragma warning(disable:4996)

int main() {

	char string[50];
	int i = 0;

	printf("문자열을 입력하세요: ");
	scanf("%s", string);				// scanf() 함수로 입력 받은 문자열의 끝은 \0 이 자동으로 삽입됨 
	printf("입력 받은 문자열 : %s\n", string);
	printf("문자 단위 출력 :");
	while (string[i] != '\0') {			// null 값 즉 \0 을 만나면 끝내기 
		printf("%c", string[i]);
		i++;
	}
}