본문 바로가기
Computer Languages/C | C++

3x3 행렬의 곱

by blackcon 2010. 10. 8.

끄적..

3x3 행렬의 곱을 C언어로 코딩해보았습니다.

소스코드

#include<iostream>
using namespace std;
#define ROW 3
#define COL 3

int c[ROW][COL]={0,};


int *matrixMultiply()///////행렬 곱셈 함수
{
  int i,j,k;  /////for문 돌리기위한 선언
  int a[ROW][COL], b[ROW][COL];

 //  ********행렬A**********
   cout<<"A행렬"<<endl;
   for(i=0;i<ROW;i++)//A입력
   {
  for(j=0;j<COL;j++)
  {
   cin>>a[i][j];
  }
   }
   //********행렬B**********
   cout<<"B행렬"<<endl;
   for(i=0;i<ROW;i++)//B입력
   {
  for(j=0;j<COL;j++)
  {
   cin>>b[i][j];
  }
   }
   //********행렬C**********
   cout<<"행렬A x 행렬B"<<endl;
   for(i=0;i<ROW;i++)
   {
   for(j=0;j<COL;j++)
  {
   for(k=0;k<3;k++)
   {
    c[i][j]+=a[i][k]*b[k][j]; 
   }
  }
   }

   return *c; //2차원배열을 리턴할때는 reference값을 리턴해야하므로 포인터처리함
}



int main()
{
  int i,j; /////for문 돌리기위한 선언
  matrixMultiply();

   for(i=0;i<ROW;i++){
  cout<<"\n";
  for(j=0;j<COL;j++)
   cout<<"  "<<*(*(c+i)+j);
  cout<<"\n";
   }

}

'Computer Languages > C | C++' 카테고리의 다른 글

[펌] new와 delete  (0) 2010.10.11
포인터 개념  (0) 2010.10.11
링크드리스트(노드추가/삭제)  (0) 2010.10.08
cast연산자  (0) 2010.10.04
Hello world  (0) 2010.09.19