-
24장. 배열과 포인터, 포인터 연산) 문제 24-5 [2차원 배열 포인터의 선언과 활용]IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:21
<2016. 9. 26. 21:17>
24장. 배열과 포인터, 포인터 연산) 문제 24-5 [2차원 배열 포인터의 선언과 활용]
/* 가로 세로의 길이가 각각 3인 int형 2차원 배열의 주소 값을 두 개 전달 받아서, 배열에 저장된 값의 총 합이 더 큰 배열의 주소값을 반환하는 함수를 정의해보자. 그리고 main 함수에서는 반환된 주소 값을 이용해서 총 합이 더 큰 배열에 저장된 모든 정수들을 출력하도록 정의하자. 다음은 이 문제에 해결에 사용될, 그리고 함수의 인자로 전달될 배열들이다. int arr1[3][3] = {{3,2,1},{6,7,2},{5,1,9}}; int arr2[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; */ #include<stdio.h> #include<stdlib.h> int CompareArr(int(*arr1)[3], int(*arr2)[3]); int main(void) { int arr1[3][3] = { { 3,2,1 } , { 6,7,2 } , { 5,1,9 } } ; int arr2[3][3] = { { 1,2,3 } , { 4,5,6 } , { 7,8,9 } } ; int(*resultarr)[3]; int result; int i, j; resultarr = CompareArr(arr1, arr2); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("%4d", resultarr[i][j]); } printf("\n"); } system("pause"); return 0; } int CompareArr(int(*arr1)[3], int(*arr2)[3]) { int i, j; int sum1 = 0, sum2 = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { sum1 += arr1[i][j]; } } printf("arr1의 총합은 %d \n", sum1); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { sum2 += arr2[i][j]; } } printf("arr2의 총합은 %d \n", sum2); if (sum1 >= sum2) return (int *)arr1; else return (int *)arr2; }
'IT > 솔루션) 난 정말C... 없다구요' 카테고리의 다른 글
25장. 함수 중심의 포인터 활용, 메모리의 동적 할당) 문제 25-1 [Call By Reference 형태의 함수 정의] - 2 (0) 2019.04.18 25장. 함수 중심의 포인터 활용, 메모리의 동적 할당) 문제 25-1 [Call By Reference 형태의 함수 정의] - 1 (0) 2019.04.18 24장. 배열과 포인터, 포인터 연산) 문제 24-4 [지역변수 및 함수의 주소 값 반환] - 2 (0) 2019.04.18 24장. 배열과 포인터, 포인터 연산) 문제 24-4 [지역변수 및 함수의 주소 값 반환] - 1 (0) 2019.04.18 24장. 배열과 포인터, 포인터 연산) 문제 24-3 [언제나 동일한 arr[i]와 x(arr+i)] (0) 2019.04.18