Papers/Others

2차원 배열 매개변수로 전달하기

tomato13 2006. 10. 15. 11:31

#include <stdio.h>

static void matrix_multiply(
       /*
       int result[3][3],
       int matrix1[3][3],
       int matrix2[3][3]
       */
       int (*result)[3],
       int (*matrix1)[3],
       int (*matrix2)[3]
       )
{
 int row, col, element;

 for(row=0; row<3; ++row)
 {
  for(col=0; col<3; ++col)
  {
   result[row][col] = 0;
   for(element = 0; element<3; ++element)
   {
    result[row][col] +=
     matrix1[row][element] *
     matrix2[element][col];
   }
  }
 }
}

static void matrix_print(
       int (*matrix)[3]
       )
{
 int row, col;

 for(row=0; row<3; ++row)
 {
  for(col=0; col<3; ++col)
  {
   printf("%d\t", matrix[row][col]);
  }
 }
 printf("\n");
}

int main(void)
{
 int matrix_a[3][3] = {
  {45, 82, 26},
  {32, 11, 13},
  {89, 81, 25}
 };

 int matrix_b[3][3] = {
  {32, 43, 50},
  {33, 40, 52},
  {20, 12, 32}
 };

 int result[3][3];

 matrix_multiply(result, matrix_a, matrix_b);
 matrix_print(result);
 return (0);
}

 

http://kin.naver.com/db/detail.php?d1id=1&dir_id=10104&eid=i0QTaDjDKhVOkhX0Aby83e12peR1L+mc&qb=MsL3v/gguei/rSC4xbCzuq+89g==