#include <bits/stdc++.h>
using namespace std;
#define N 100
class Matrix
{
private:
int data[N][N];// 存放矩阵
public:
// n行m列的矩阵
int n,m;
// 无参构造函数. n和data数组均置零
Matrix();
// 有参构造函数,赋值行值n和列值m data数组元素均置零
Matrix(int n,int m);
// 有参构造函数,设置对象的行列值和矩阵元素
Matrix(int n,int m,int data[N][N]);
// 调用者对象与相乘,返回Matrix对象
Matrix multipyMatrix(Matrix mat1);
// 输出调用者对象的有关数据
void outputMatrix();
};
Matrix::Matrix()
{
n = 0;
for(int i=0; i<N; i++)
{
for(int j=0; j<N; j++)
{
data[i][j] = 0;
}
}
}
Matrix::Matrix(int n,int m)
{
Matrix();
this->n = n;
this->m = m;
}
Matrix::Matrix(int n,int m,int data[N][N])
{
this->n = n;
this->m = m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
this->data[i][j] = data[i][j];
}
}
}
Matrix Matrix::multipyMatrix(Matrix mat1)
{
int n = this->n;
int m = this->m;
Matrix res(n, mat1.m);
for(int i=1; i<=n; i++)
{
for(int j=1; j<=mat1.m; j++)
{
for(int k=1; k<=m; k++)
{
res.data[i][j] = (res.data[i][j] + this->data[i][k] * mat1.data[k][j]);
}
}
}
return res;
}
void Matrix::outputMatrix()
{
for(int i=1; i<= this->n; i++)
{
for(int j=1; j<= this->m; j++)
cout<< this->data[i][j]<<" ";
cout<<endl;
}
}
void randInput() {
int n = rand()%4;
while(n == 0) {
n = rand()%4;
}
int m = rand()%4;
while(m == 0) {
m = rand()%4;
}
int k = rand()%4;
while(k == 0) {
k = rand()%4;
}
cout<<n<<" "<<m <<" "<<k<<endl;
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
int x = rand()%20;
//data1[i][j] = x;
cout<<x <<" ";
}
cout<<endl;
}
for(int i=1;i<=m;i++) {
for(int j=1;j<=k;j++) {
int x = rand()%20;
//data[i][j] = x;
cout<<x <<" ";
}
cout<<endl;
}
}
int main()
{
freopen("in.txt","w",stdout);
srand(time(NULL));
randInput();
/*
//freopen("in.txt","r",stdin);
//int T = 5;
//while(T--) {
//randInput();
//cout<<endl;
int n,m,k;cin>>n>>m>>k;
int data[N][N];
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
cin>>data[i][j];
}
}
Matrix mat1(n,m,data);
for(int i=1;i<=m;i++) {
for(int j=1;j<=m;j++) {
cin>>data[i][j];
}
}
Matrix mat2(m,k,data);
Matrix mat3 = mat1.multipyMatrix(mat2);
mat3.outputMatrix();
*/
//}
return 0;
}
出题 test
猜你喜欢
转载自www.cnblogs.com/Draymonder/p/10070492.html
今日推荐
周排行