1:定義兩個二維陣列用于存放矩陣
2:輸入/輸出:輸入帶運算的兩個矩陣,輸出運算結果
3:矩陣加:判斷兩個矩陣是否可以相加,如可以,計算兩個矩陣之和,結果輸出
4,5減乘條件同3
6,矩陣與數的相乘:輸入數字,計算每個矩陣與該數字的乘積,結果輸出
7:矩陣轉置:計算每個矩陣的轉置,結果輸出
#include<iostream>
#define R 3
using namespace std;
class Matrix
{
public:
int i,j;
Matrix(int a);
friend Matrix operator+(Matrix &a);
friend Matrix operator-(Matrix &a);
friend Matrix operator*(Matrix &a);
friend Matrix shucheng (Matrix &a);
friend Matrix zhuanzhi (Matrix &a);
private:
int p[R][R];
};
Matrix::Matrix()
{
for(int i=0;i<R;i++)
{
for(int j=0;j<R;j++)
p[i][j]=0;
}
}
Matrix& Matrix::operator+( Matrix &a )
{
Matrix c;
{
for(int i=0;i<R;i++)
{
for(int j=0;j<R;j++)
c.p[i][j]=p[i][j]+a.p[i][j];
return c;
}
}
}
Matrix& Matrix::operator-( Matrix &a )
{
Matrix c;
for ( int i=0;i<R;i++)
{
for ( int j=0;j<R;j++ )
{
c.p[i][j]=p[i][j]- a.p[i][j];
return c;
}
}
}
Matrix& Matrix::operator*( Matrix &a)
{
Matrix c;
for ( int i = 0; i < R; i++ )
{
for ( int j = 0; j < R; j++ )
{
for(int k=0;k<R;k++)
c.p[i][j]=p[i][k]*a.p[k][j];
return c;
}
}
}
Matrix& Matrix::shucheng(Matrix &a)
{
int b;
for ( int i = 0; i < R; ++i )
{
for ( int j = 0; j < R; ++j )
{
c.p[i][j]=b*a.p[i][j];
return c;
}
}
}
Matrix Matrix::zhuanzhi(Matrix &a)
{
Matrix m,n;
m=a;
for ( int i = 0; i < R; ++i )
{
for ( int j = 0; j < R; ++j )
n.p[i][j]=m.p[i][j];
return n;
}
}
int main()
{
Matrix a,b,c,d,f,e,g,X,k;
a,b,c,d,e,f,g;
cin>>a;
cin>>b;
c=a+b;
d=a-b;
e=a*b;
f=X*a;
g=X*b;
cout<<endl<<"Matrix a is:"<<endl;
cout<<a;
cout<<endl<<"Matrix a is:"<<endl;
cout<<b
cout<<"A,B兩矩陣之和為:"<<endl;
cout<<c;
cout<<"A,B兩矩陣之差為:"<<endl;
cout<<d;
cout<<"A,B兩矩陣之積為:"<<endl;
cout<<e;
cout<<"矩陣A與數相乘為:"<<endl;
cout<<f;
cout<<"矩陣B與數相乘為:"<<endl;
cout<<g;
cout<<endl<<"矩陣A1轉置為:"<<endl;
cout<< <<endl;
cout<<"矩陣A2轉置為:"<<endl;
cout<< <<endl;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/100295.html
標籤:基礎類
上一篇:sql val 函式在access中可用,在borland c++中不可用,如何解決?
下一篇:Swoole編譯安裝步驟
