zoukankan      html  css  js  c++  java
  • [YTU]_2442( C++习题 矩阵求和--重载运算符)

    题目描述

    有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加(如c=a+b)。
    重载流插入运算符“<<”和流提取运算符“>>”,使之能用于该矩阵的输入和输出。

    输入

    两个2行3列矩阵

    输出

    矩阵之和

    样例输入

    1 2 3
    4 5 6
    
    7 8 9
    1 2 3
    

    样例输出

    8 10 12
    5 7 9
    #include <iostream>
    using namespace std;
    class Matrix
    {
    public:
        Matrix();
        friend Matrix operator+(Matrix &,Matrix &);
        friend ostream& operator<<(ostream&,Matrix&);
        friend istream& operator>>(istream&,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 &a,Matrix &b)
    {
        Matrix S;
        int i,j;
        for(i=0;i<2;i++)
            for(j=0;j<3;j++)
             S.mat[i][j]=a.mat[i][j]+b.mat[i][j];
            return S;
    }
    istream& operator>>(istream& input,Matrix &m)
    {
        int i,j;
        for(i=0;i<2;i++)
            for(j=0;j<3;j++)
                input>>m.mat[i][j];
            return input;
    }
    ostream & operator<<(ostream &output,Matrix &m)
    {
        int i,j;
        for(i=0;i<2;i++)
            for(j=0;j<2;j++)
            {
                output<<m.mat[i][j]<<' ';
                if(j==1)
                    output<<m.mat[i][2]<<endl;
            }
            return output;
    }
    int main()
    {
        Matrix a,b,c;
        cin>>a;
        cin>>b;
        c=a+b;
        cout<<c<<endl;
        return 0;
    }

  • 相关阅读:
    让svn自动更新代码注释中的版本号
    前端开发利器F5
    当inlineblock和textindent遇到IE6,IE7
    DSL与函数式编程
    [译]当Node.js遇上WebMatrix 2
    《大道至简》的读后感
    深度学习之卷积神经网络之一
    ORACLE TRUNC()函数
    oracle rownum
    ORACLE 忽略已有重复值 创建唯一约束
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586344.html
Copyright © 2011-2022 走看看