若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

2640: 编程题:运算符重载—矩阵求和

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,433

题目描述

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

请在下面的程序段基础上完成设计,只提交begin到end部分的代码 */

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

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;
}

//将程序需要的其他成份写在下面,只提交begin到end部分的代码
//******************** begin ********************

//********************* end ********************

int main()

{

    Matrix a,b,c;

    cin>>a;

    cin>>b;

    c=a+b;

    cout<<c<<endl;

    return 0;

}

输入

两个2行3列矩阵

输出

矩阵之和

样例输入

1 2 3
4 5 6

7 8 9
0 1 2

样例输出

8 10 12 
4 6 8 

参考代码

#include<stdio.h>
int main() 
{
    int a[2][3],b[2][3],i,j,c[2][3];
    for (i=0;i<2;i++)
            for (j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    for (i=0;i<2;i++)
            for (j=0;j<3;j++)
            scanf("%d",&b[i][j]);
    for (i=0;i<2;i++)
            for (j=0;j<3;j++)
               c[i][j]=a[i][j]+b[i][j];
    for (i=0;i<2;i++) 
    {
        for (j=0;j<3;j++)
                    printf("%d ",c[i][j]);
        printf("n");
       }
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

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

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip Dreams孤独患者 原站点
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist