본문 바로가기

C 언어/연습문제

C언어 연습문제26

[문제]

먼저 아래와 같이 2차원 배열 arr1, arr2를 선언한다. 

arr1
1 2 3 4
5 6 7 8

arr2
1 1 1 1
3 3 3 3
5 5 5 5

그리고 배열요소를 출력하는 함수 ShowArr2Dstyle()와 배열요소의 합을 반환하는 함수 Sum2DArr()을 사용하여 arr1, arr2의 배열 요소와 배열 요소의 합을 출력하라. 

 

[실행결과]

1 2 3 4
5 6 7 8

1 1 1 1
3 3 3 3
5 5 5 5

arr1의 합: 36
arr2의 합: 36

 

[코드]

#include<stdio.h>

void ShowArr2Dstyle(int(*arr)[4], int column) // 2차원 배열 전체 요소 출력
{
	int i, j;

	for (i = 0; i < column; i++)
	{
		for (j = 0; j < 4; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	printf("\n");
}

int Sum2DArr(int arr[][4], int colum) // 2차원 배열 전체 요소의 합 반환
{
	int i, j;
	int sum = 0;

	for (i = 0; i < colum; i++)
	{
		for (j = 0; j < 4; j++)
			sum += arr[i][j];
	}
	return sum;
}

int main(void)
{
	int arr1[2][4] = {
		{1,2,3,4},
		{5,6,7,8}
	};
	int arr2[3][4] = {
		{1,1,1,1},
		{3,3,3,3},
		{5,5,5,5}
	};

	ShowArr2Dstyle(arr1, sizeof(arr1) / sizeof(arr1[0]));
	ShowArr2Dstyle(arr2, sizeof(arr2) / sizeof(arr2[0]));
	printf("arr1의 합: %d\n", Sum2DArr(arr1, sizeof(arr1) / sizeof(arr1[0])));
	printf("arr2의 합: %d\n", Sum2DArr(arr2, sizeof(arr2) / sizeof(arr2[0])));

	return 0;
}

 

<참고>

윤성우의 열혈 C 프로그래밍

'C 언어 > 연습문제' 카테고리의 다른 글

C언어 연습문제28  (0) 2022.03.21
C언어 연습문제27  (0) 2022.03.18
C언어 연습문제25  (0) 2021.11.30
C언어 연습문제24  (0) 2021.11.26
C언어 연습문제23  (0) 2021.11.24