• YTU 2442: C++习题 矩阵求和--重载运算符


    2442: C++习题 矩阵求和--重载运算符

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 1457  解决: 565

    题目描述

    有两个矩阵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
    

    提示

    前置代码及类型定义已给定如下,提交时不需要包含,会自动添加到程序前部



    /* C++代码 */

    #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];

    };





    主函数已给定如下,提交时不需要包含,会自动添加到程序尾部



    /* C++代码 */



    int main()

    {

        Matrix a,b,c;

        cin>>a;

        cin>>b;

        c=a+b;

        cout<<c<<endl;

        return 0;

    }

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #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];
    };
    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;
    }
    Matrix::Matrix()
    {
        int i,j;
        for(i=0; i<2; i++)
            for(j=0; j<3; j++)
                mat[i][j]=0;
    }
    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]<<" ";
            }
            output<<m.mat[i][j]<<endl;
        }
        return output;
    }
    Matrix operator+(Matrix &m1,Matrix &m2)
    {
        Matrix m;
        for(int i=0; i<2; ++i)
            for(int j=0; j<3; ++j)
            {
                m.mat[i][j]=m1.mat[i][j]+m2.mat[i][j];
            }
        return m;
    }
    int main()
    {
        Matrix a,b,c;
        cin>>a;
        cin>>b;
        c=a+b;
        cout<<c<<endl;
        return 0;
    }
    

  • 相关阅读:
    10个强大的Apache开源模块
    Flume日志收集(转载)
    hbase安装配置(整合到hadoop)
    Hadoop与HBase兼容版本汇总
    关于Mysql Proxy LUA实现Mysql读写分离
    Redis发布了集群版3.0.0 beta
    Spring MVC 学习之 400 错误
    Mahout安装(Hadoop 1.2.1 版本)
    【Android】性能优化
    【Android】asynchronous http client
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989442.html
Copyright © 2020-2023  润新知