类重载实现矩阵加法

类重载实现矩阵加法

时间: 1ms        内存:128M

描述:

编写矩阵类Matrix,实现两个2x3矩阵相加。主函数已给定。

输入:

两个矩阵的元素值

输出:

两个矩阵相加的结果

示例输入:

1 2 3
4 5 6
1 2 3
4 5 6

示例输出:

2 4 6
8 10 12

提示:

参考答案(内存最优[0]):

#include <iostream>

using namespace std;

class Matrix
{
public:
    Matrix();
    void input();
    void display();
    friend Matrix operator +(Matrix &,Matrix &);
private:
    int mat[2][3];
};

Matrix::Matrix()
{
    int i,j;
    for(i=0; i<2; i++)
        for(j=0; j<3; j++)
            mat[i][j]=0;
}

Matrix operator +(Matrix &m1,Matrix &m2)
{
    Matrix m;
    int i,j;
    for(i=0; i<2; i++)
        for(j=0; j<3; j++)
            m.mat[i][j]=m1.mat[i][j]+m2.mat[i][j];
    return m;
}

void Matrix::input()
{
    int i,j;
    for(i=0; i<2; i++)
        for(j=0; j<3; j++)
            cin>>mat[i][j];
}

void Matrix::display()
{
    int i,j;
    for(i=0; i<2; ++i)
    {
        for(j=0; j<2; ++j)
            cout<<mat[i][j]<<" ";
        cout<<mat[i][2];
        cout<<endl;
    }
}

int main()
{
	Matrix a,b,c;
	a.input();
	b.input();
	c=a+b;
	c.display();
	return 0;
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
class Matrix
{
public:
    void input()
    {
        int *p=a[0];
        int i;
        for(i=0;i<2*3;i++)
            cin>>*p++;
    }
    Matrix operator+(Matrix b)
    {
        Matrix e;
        int i,j;
        for(i=0;i<2;i++)
        {
            for(j=0;j<3;j++)
                e.a[i][j]=b.a[i][j]+a[i][j];
        }
        return e;
    }
    void display()
    {
        int i,j;
        for(i=0;i<2;i++)
        {
            for(j=0;j<2;j++)
                cout<<a[i][j]<<" ";
            cout<<a[i][2]<<endl;
        }
    }
private:
    int a[2][3];
};
int main()
{
	Matrix a,b,c;
	a.input();
	b.input();
	c=a+b;
	c.display();
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注