//상이한 크기의 행렬을 get_data() 함수로 처리하는 문제를 해결하기 위한 class 사용
//C program의 배열 처리를 class를 사용한 프로그램으로 수정
//static 사용한 버젼으로 수정
#include <stdio.h>
#include <stdlib.h>
#include "time.h"
#define AROWS 3
#define ACOLS 4
#define BROWS 4
#define BCOLS 5
#define CROWS 3
#define CCOLS 5
class Matrix {
private:
 int rows, cols;
 static int* data;
 static int free;
 int start, finish;
 int terms;
public:
 int get_data();
 int show_data();
 int sort_data();
 int addMatrix(Matrix&);
 int MultiplyMatrix(Matrix&, Matrix&);
};
/*
행렬이 여러개 일 때 하나의 function으로 처리하는 방법을 고안
*/
/*
int get_data(int(*p)[ACOLS], int n)
{

 for (int i = 0; i < n; i++)
  for (int j = 0; j < n; j++)
   p[i][j] = rand() % (N * N);
 return 1;
}
void show_data(int(*p)[ACOLS], int n)
{
 for (int i = 0; i < n; i++)
 {
  for (int j = 0; j < n; j++)
   printf("%d ", p[i][j]);
  printf("\n");
 }
}
void multiply(int matrixA[][ACOLS], int ar, int matrixB[][BCOLS], int br, int matrixC[][CCOLS], int cr) {

}
*/
int Matrix::free = 0;
int* Matrix::data = new int[100];

int main(void)
{
 Matrix matrixA(AROWS, ACOLS);
 Matrix matrixA1(AROWS, ACOLS);
 Matrix matrixB(BROWS, BCOLS);
 Matrix matrixC(CROWS, CCOLS);

 srand(time(NULL));
 matrixA.get_data();
 /*
 show_data(matrixA, AROWS);
 get_data(matrixB, AROWS);
 show_data(matrixB, AROWS);

 multiply(matrixA, AROWS, matrixB, BROWS, matrixC, CROWS);
 show_data(matrixC, AROWS);
 */
 system("pause");
 return 0;
}