Week12.4
4 重载矩阵加法运算(20分)
题目内容:
编写一个矩阵类,重载矩阵加法运算。设A,B,C均为m行,n列的矩阵,要求程序能实现C=A+B的操作。
输入格式:
第一行为矩阵的行数和列数,下面为两个矩阵的元素值
输出格式:
两个矩阵的和。注意,输出的每行元素,行末没有空格。
输入样例:
2 3
1 3 2
4 2 5
2 3 4
3 2 6
输出样例:
3 6 6
7 4 11
//C++_exer12.4重载矩阵加法运算
#include<iostream>
using namespace std;
class Matrix
{
private:
int m,n;
double *data;
public:
Matrix () {};//无参构造函数
Matrix(int m,int n)
{
this->m=m;
this->n=n;
this->data=new double[m*n];
}
void dataload()
{
for(int i=0;i<m*n;i++)
cin>>data[i];
}
Matrix operator+(Matrix &c)
{
Matrix tmp(m,n);
int i;
for(i=0;i<m*n;i++)
{
tmp.data[i]=c.data[i]+this->data[i];
}
return tmp;
}
void Show()
{
int i,j,index=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cout<<this->data[index];
if(j!=n-1){
cout<<" ";
}
else cout<<endl;
index++;
}
}
};
int main()
{
int m,n;
cin>>m>>n;
Matrix m1(m,n),m2(m,n);
m1.dataload();
m2.dataload();
Matrix m3(m,n);
m3=m1+m2;
m3.Show();
return 0;
}
这是一篇关于使用C++编程实现矩阵加法运算的作业。通过编写矩阵类并重载加法运算符,实现了将两个m行n列的矩阵相加得到新矩阵的功能。输入包括两个矩阵的行数、列数及其元素值,输出为矩阵的和,元素间无空格。
1545

被折叠的 条评论
为什么被折叠?



