面向对象程序设计上机练习十一(运算符重载)

面向对象程序设计上机练习十一(运算符重载)

Time Limit: 1000MS Memory limit: 65536K

题目描述

有两个矩阵a和b,均为2行3列,求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:c=a+b。

输入

第1、2行是矩阵a的值,数据以空格分开。
第3、4行是矩阵b的值,数据以空格分开。

输出

2个矩阵a、b之和,以行列形式显示。

示例输入

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

示例输出

6 6 5
8 9 6
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

class Matrix //矩阵运算
{
    private:
      int a[3];
      int b[3];
    public:
      void input()
      {
          int i;
          for(i=0; i<3; i++)
          cin>>a[i];
          for(i=0;  i<3; i++)
          cin>>b[i];
      }
      void outp()
      {
          int j;
          for(j=0; j<3; j++)
          {
              if(j==2)
                cout<<a[j]<<endl;
              else
              cout<<a[j]<<‘ ‘;
          }
          for(j=0; j<3; j++)
          {
              if(j==2)
                cout<<b[j]<<endl;
              else
              cout<<b[j]<<‘ ‘;
          }
      }
      friend Matrix operator +(Matrix &c1, Matrix &c2 )
      {
          Matrix c;
          int i, j;
          for(i=0; i<3; i++)
          {
              c.a[i]=c1.a[i]+c2.a[i];
          }
          for(j=0; j<3; j++)
          {
              c.b[j]=c1.b[j]+c2.b[j];
          }
          return c;
      }
};

int main()
{
   Matrix c1, c2, d;
   c1.input();
   c2.input();

   d=c1+c2;
   d.outp();

   return 0;
}
时间: 2024-08-06 07:54:35

面向对象程序设计上机练习十一(运算符重载)的相关文章

面向对象程序设计上机练习十一(运算符重载)(SDUTOJ1273)

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1273 题目描述 有两个矩阵a和b,均为2行3列,求两个矩阵之和.重载运算符“+”,使之能用于矩阵相加.如:c=a+b. 输入 第1.2行是矩阵a的值,数据以空格分开.第3.4行是矩阵b的值,数据以空格分开. 输出 2个矩阵a.b之和,以行列形式显示. 示例输入 2 3 4 3 5 3 4 3 1 5 4 3 示例输出 6 6 5 8 9 6 来源 zl

sdut 面向对象程序设计上机练习十一(运算符重载)

面向对象程序设计上机练习十一(运算符重载) Time Limit: 1000MS Memory limit: 65536K 题目描述 有两个矩阵a和b,均为2行3列,求两个矩阵之和.重载运算符"+",使之能用于矩阵相加.如:c=a+b. 输入 第1.2行是矩阵a的值,数据以空格分开. 第3.4行是矩阵b的值,数据以空格分开. 输出 2个矩阵a.b之和,以行列形式显示. 示例输入 2 3 4 3 5 3 4 3 1 5 4 3 示例输出 6 6 5 8 9 6 来源 #include &

sdut 面向对象程序设计上机练习十二(运算符重载)

面向对象程序设计上机练习十二(运算符重载) Time Limit: 1000MS Memory limit: 65536K 题目描述 处理一个复数与一个double数相加的运算,结果存放在一个double型变量d1中,输出d1的值.定义Complex(复数)类,在成员函数中包含重载类型转换运算符:operator double(){return real;} 输入 输入占两行: 第1行是一个复数的实部和虚部,数据以空格分开. 第2行是一个实数. 输出 输出占一行,复数的实部和实数之和,小数点后保

sdut 面向对象程序设计上机练习十(运算符重载)

面向对象程序设计上机练习十(运算符重载) Time Limit: 1000MS Memory limit: 65536K 题目描述 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算.参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意.例如:c1+c2.i+c1.c1+i均合法.(其中i是整数,c1.c2是复数),编程实现求2个复数之和.整数与复数之和. 输入 输入有三行:第1行是第1个复数c1的实部和虚部,以空格分开.第2行是第2个复数c2的实

sdut 面向对象程序设计上机练习一(函数重载)

面向对象程序设计上机练习一(函数重载) Time Limit: 1000MS Memory limit: 65536K 题目描述 利用数组和函数重载求5个数最大值(分别考虑整数.单精度.长整数的情况). 输入 分别输入5个int型整数.5个float 型实数.5个long型正整数. 输出 分别输出5个int型整数的最大值.5个float 型实数的最大值.5个long型正整数的最大值. 示例输入 11 22 666 44 55 11.11 22.22 33.33 888.88 55.55 1234

sdut 面向对象程序设计上机练习二(函数模板)

面向对象程序设计上机练习二(函数模板) Time Limit: 1000MS Memory limit: 65536K 题目描述 利用数组和函数模板求5个数最大值(分别考虑整数.单精度.长整数的情况). 输入 分别输入5个int型整数.5个float 型实数.5个long型正整数. 输出 分别输出5个int型整数的最大值.5个float 型实数的最大值.5个long型正整数的最大值. 示例输入 11 22 666 44 55 11.11 22.22 33.33 888.88 55.55 1234

sdut 面向对象程序设计上机练习七(类和对象)

面向对象程序设计上机练习七(类和对象) Time Limit: 1000MS Memory limit: 65536K 题目描述 利用类的数据成员和成员函数完成下列操作:输入三个整数,输出它们的最大值. 输入 输入三个整数. 输出 输出3个整数的最大值. 示例输入 2 8 5 示例输出 8 这个就不做详细注释了,初学者也能尝试着看懂. #include <iostream> using namespace std; class shu { private: int a,b,c; public:

sdut 面向对象程序设计上机练习四(变量引用)

面向对象程序设计上机练习四(变量引用) Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 将变量的引用作为函数形參,实现2个int型数据交换. 输入 输入2个int型整数. 输出 输出2个整数交换前后的值. 演示样例输入 88 66 演示样例输出 88 66 66 88 把变量的引用作为函数形參,即传送变量的别名. #include <iostream> using namespace std; //"引用形參"交换函数 void

sdut 面向对象程序设计上机练习三(有默认参数的函数)

面向对象程序设计上机练习三(有默认参数的函数) Time Limit: 1000MS Memory limit: 65536K 题目描述 利用默认参数的函数实现求2个或3个整数的最大值. 输入 输入3个int型整数. 输出 输出第1.2个整数及其最大值: 输出第1.2.3个整数及其最大值. 示例输入 88 66 99 示例输出 88 66 88 88 66 99 99 既然题目要求是调用默认的函数,就不用自己去定义了: 机智灵活的运用默认函数.. #include <iostream> usi