(1)有2个矩阵A和B(均为2行3列)。求2矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:C=A+B。

用c++编程(1)有2个矩阵A和B(均为2行3列)。求2矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:C=A+B。用VC++6.0编译调式运行... 用c++编程
(1)有2个矩阵A和B(均为2行3列)。求2矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:C=A+B。
用VC++6.0编译调式运行
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
CarltonF
2006-12-08 · TA获得超过2947个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:354万
展开全部
  //main.cpp _______used for testing

  #include <cstdlib>
  #include <iostream>
  #include "matrix.h"
  #include "time.h"
  #include "stdlib.h"

  using namespace std;

  int main(int argc, char *argv[])
  {
  srand(time(NULL));
  double data[ROW][COLUMN];
  Matrix *pm1,*pm2;
  int k=0;
  while(k<2)
  {
  for(int i=0;i<ROW;i++)
  for(int j=0;j<COLUMN;j++)
  data[i][j] = rand()%50;
  if(k++)
  pm1 = new Matrix(data,2);
  else
  pm2 = new Matrix(data,2);
  }
  cout << "Two Matrix Addition:\n";
  cout << "\nm1:\n"; pm1->Display();
  cout << "\nm2:\n"; pm2->Display();
  cout << "\nThe Resulte is :\n";
  Matrix temp = *pm1 + *pm2;
  temp.Display();
  system("PAUSE");
  return EXIT_SUCCESS;
  }

  //matrix.h___________________used for the class Matrix

  #ifndef _matrix_h
  #define _matrix_h

  #define ROW 2
  #define COLUMN 3

  class Matrix
  {
  private:
  double el[ROW][COLUMN];
  public:
  Matrix()
  {
  for(int i=0;i<ROW;i++)
  for(int j=0;j<COLUMN;j++)
  el[i][j]=0;
  }
  Matrix(double [][COLUMN],int);
  ~Matrix(){}
  void Display();
  friend const Matrix operator + (const Matrix &,const Matrix &);
  };

  const Matrix operator + (const Matrix&,const Matrix &);

  #endif //_matrix_h

  //matrix.cpp_____________the implementation of the class functions
  #include "matrix.h"
  #include <iostream>

  using namespace std;

  Matrix::Matrix(double pa[][COLUMN],int row)
  {
  if(row >= 2)
  {
  for(int i=0;i<ROW;i++)
  for(int j=0;j<COLUMN;j++)
  el[i][j] = pa[i][j];
  }
  }

  void Matrix::Display()
  {
  cout << "The Matrix is :\n";
  for(int i=0;i<ROW;i++)
  {
  for(int j=0;j<COLUMN;j++)
  cout << el[i][j] <<'\t';
  cout << endl;
  }
  cout << "End!\n";
  }

  const Matrix operator + (const Matrix & m1,const Matrix & m2)
  {
  Matrix temp;
  for(int i=0;i<ROW;i++)
  for(int j=0;j<COLUMN;j++)
  temp.el[i][j] = m1.el[i][j] + m2.el[i][j];
  return temp;
  }

  vs.net下编译通过,虽然这个程序不是很复杂,但是因为VC++6.0对C++标准支持得不是很好,所以一些类似变量声明定义的细节地方出了问题,可以自己调整一下。建议换掉VC++6.0,是应该把它留给历史了。
  如果还有不明白的地方,可以发邮件给我。icesnow_no@163.com
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式