#include<iostream>
using namespace std;
class matrix
//自己做一个三阶方阵类
{
public:
/*matrix(){};
matrix(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9)
{
element[0][0]=a1;element[0][1]=a2;element[0][2]=a3;
element[1][0]=a4;element[1][1]=a4;element[1][2]=a6;
element[2][0]=a7;element[2][1]=a8;element[2][2]=a9;
}*/
int element[3][3];
matrix operator*(matrix& multiplied)
{
matrix C;
for(int row=0;row<3;row++)
{
for(int col=0;col<3;col++)
{
C.element[row][col]=0;
for(int k=0;k<3;k++)
C.element[row][col]+=(element[row][k]*multiplied.element[k][col]);
}
}
return C;
}
};
int main()
{
int get[9];
cout<<"Please input the elements of matrix A:\n";
cin>>get[0]>>get[1]>>get[2]>>get[3]>>get[4]>>get[5]>>get[6]>>get[7]>>get[8];
matrix A;
int idx;
for(idx=0;idx<9;idx++)
{
A.element[idx/3][idx%3]=get[idx];
}
cout<<"you just input\n"<<get[0]<<'\t'<<get[1]<<'\t'<<get[2]<<endl;
cout<<get[3]<<'\t'<<get[4]<<'\t'<<get[5]<<endl;
cout<<get[6]<<'\t'<<get[7]<<'\t'<<get[8]<<endl;
cout<<"Please input the elements of matrix B:\n";
cin>>get[0]>>get[1]>>get[2]>>get[3]>>get[4]>>get[5]>>get[6]>>get[7]>>get[8];
matrix B;
for(idx=0;idx<9;idx++)
{
B.element[idx/3][idx%3]=get[idx];
}
cout<<"you just input\n"<<get[0]<<'\t'<<get[1]<<'\t'<<get[2]<<endl;
cout<<get[3]<<'\t'<<get[4]<<'\t'<<get[5]<<endl;
cout<<get[6]<<'\t'<<get[7]<<'\t'<<get[8]<<endl;
matrix C;
C=A*B;
cout<<"After multiplication, you get\n";
for(int r=0;r<3;r++)
{
for(int c=0;c<3;c++)
{
cout<<C.element[r][c]<<'\t';
}
cout<<endl;
}
return 0;
}
这是三阶矩阵相乘所用的*运算符重载。已测试。加减法更容易,自己处理吧。