| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 488 人关注过本帖
标题:矩阵相加
只看楼主 加入收藏
cwl168
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2012-12-14
结帖率:8.33%
收藏
 问题点数:0 回复次数:7 
矩阵相加
#include<iostream.h>

class Matrix
{
public:
    Matrix();
    void input();
    void display();
    friend Matrix operator +(Matrix &,Matrix &);
protected:
    int mat[2][3];
};
Matrix::Matrix()
{
    for(int i=0;i<2;i++)
        for(int j=0;i<3;j++)
            mat[i][j]=0;
}
void Matrix::input()
{
    cout<<"input value of matrix:"<<endl;
    for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
            cin>>mat[i][j];
}
void Matrix::display()
{
    for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
        {
            cout<<mat[i][j]<<" ";
            cout<<endl;
        }
}
Matrix operator +(Matrix &a,Matrix &b)
{
    Matrix c;
    for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
            c.mat[i][j]=a.mat[i][j]+b.mat[i][j];
        return c;
}
int main()
{
    Matrix a,b,c;
    cout<<"input a Matrix:"<<endl;
    a.input();
    b.input();
   
    cout<<endl<<"intput a Matrix:"<<endl;
    a.display();
    cout<<endl<<"intput b Matrix:"<<endl;

    b.display();
    c=a+b;
    cout<<endl<<"Matrix c=Matrix a+Matrix b:"<<endl;
    c.display;

    return 0;
}
搜索更多相关主题的帖子: public include display mat void 
2013-01-11 15:36
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
看看

让平淡诉说非凡!
2013-01-11 15:50
h1023417614
Rank: 4
等 级:禁止访问
帖 子:211
专家分:237
注 册:2012-11-30
收藏
得分:0 
2013-01-12 12:34
宋立鹏
Rank: 2
等 级:论坛游民
帖 子:30
专家分:16
注 册:2012-7-5
收藏
得分:0 
1,display返回值是void,不能用cout直接调用,不过你倒是可以将display的返回值改为int,就可以了
2,没必要用friend函数
2013-01-12 14:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
你的老师呀
都是些学C没学会(当然,这是智力问题,我不会去嘲笑他),找不到工作在家看了几天C++的书,于是开始教书育人,误人子弟了(这个就是人品问题了)。
2013-01-12 15:01
youngsonger
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2012-10-3
收藏
得分:0 
我是有多无聊。。。居然在帮你Debug查错。。。。
你的Matrix构造函数里面的第二个for循环的 'j' 写成了 'i',程序就死循环了。
程序代码:
#include <iostream>
using namespace std;

class Matrix
{
private:
  int mat[2][3];
  friend Matrix operator +(Matrix &,Matrix &);
public:
  Matrix()
  {
    //Be careful when you use 'i,j' in a loop
    for(int i=0;i<2;i++)
      for(int j=0;j<3;j++)
    mat[i][j]=0;
  }

  void input()
  {
    cout<<"Input a new matrix:"<<endl;
    for(int i=0;i<2;i++)
      for(int j=0;j<3;j++)
    {
      cout<<"Type in the value of "
          <<" row "<<i+1<<" column "<<j+1<<endl;
      cin>>mat[i][j];
    }
  }

  void display()
  {
    for(int i=0;i<2;i++)
      {
    for(int j=0;j<3;j++)
      cout<<mat[i][j]<<" ";
    cout<<endl;
      }
  }
};

Matrix operator +(Matrix &a, Matrix &b)
{
  Matrix c;
  for(int i=0;i<2;i++)
    for(int j=0;j<3;j++)
      c.mat[i][j]=a.mat[i][j]+b.mat[i][j];
  return c;
};

int main()
{
  Matrix a,b,c;
  cout<<"Input two matrixs:"<<endl;
  a.input();
  b.input();

 
  cout<<endl<<"A Matrix:"<<endl;
  a.display();
  cout<<endl<<"B Matrix:"<<endl;
  b.display();

  c = a + b;
  cout<<endl<<"Matrix C = Matrix A + Matrix B: "<<endl;
  c.display();

  return 0;
};

2013-01-14 02:32
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
回复 5楼 rjsp
怎么说呢,大哥指教下啊
2013-01-16 22:46
羽VS翼
Rank: 2
等 级:论坛游民
帖 子:26
专家分:43
注 册:2013-1-17
收藏
得分:0 
Matrix::Matrix()
 {
     for(int i=0;i<2;i++)
         for(int j=0;(((i<3)));j++)
             mat[i][j]=0;
 }
代码有问题  仔细看看
2013-01-18 15:24
快速回复:矩阵相加
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030607 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved