2 yr131 yr131 于 2015.06.09 22:02 提问

求大神解答一下c++的题,重载运算符+,-,*,求矩阵的运算,做了好久没做出来
c++

#include<iostream.h>
#include<iomanip.h>
class operation
{public:
    static void rank();  //输入阶数
    void array();  //输入矩阵
    void display();
    friend operation operator +(operation &,operation &);
    friend operation operator -(operation &,operation &);
    friend operation operator *(operation &,operation &);
private:
    int a[50][50];
    static int n;
};
void operation::rank()
{cin>>n;}
void operation::array()
{
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            cin>>a[i][j];
}
operation operator +(operation &a1,operation &a2)
{
    operation a3;
    for(int i=0;i<operation::n;i++)
        for(int j=0;j<operation::n;j++)
            a3.a[i][j]=a1.a[i][j]+a2.a[i][j];
    return a3;
}
operation operator -(operation &a1,operation &a2)
{
    operation a3;
    for(int i=0;i<operation::n;i++)
        for(int j=0;j<operation::n;j++)
            a3.a[i][j]=a1.a[i][j]-a2.a[i][j];
    return a3;
}
operation operator *(operation &a1,operation &a2)
{
    operation a3;
    for(int k=0;k<operation::n;k++)
    {
        for(int i=0;i<operation::n;i++)
        {
            for(int j=0;j<operation::n;j++)
            a3.a[k][i]+=a1.a[k][j]*a2.a[j][i];

        }
    }
    return a3;
}
void operation::display()
{
    for(int i=0;i<n;i++)
    {   for(int j=0;j<n;j++)
           cout<<setw(10)<<operation::a[i][j];
    cout<<endl;
    }
}
int operation::n;
#include"operation.h"

int main()
{
    operation a1,a2,a3;
    cout<<"piease input rank:";
    operation::rank();
    cout<<"please input a1:"<<endl;
    a1.array();
    cout<<"please input a2:"<<endl;
    a2.array();
    cout<<"a1+a2:"<<endl;
    a3=a1+a2;
    a3.display();
    cout<<"a1-a2:"<<endl;
    a3=a1-a2;
    a3.display();
    cout<<"a1*a2:"<<endl;
    a3=a1*a2;
    a3.display();
    return 0;
}

3个回答

fcxxxer
fcxxxer   2015.06.09 22:18

什么情况,我看没问题啊,输出不对?

yr131
yr131 乘法输出不对!
大约 3 年之前 回复
wsh1992o
wsh1992o   Rxr 2015.06.10 09:21

看上去没什么问题
是运行乘法的时候报错还是输出结果不对?

yr131
yr131 乘法输出不对!好像跟初始化有关
大约 3 年之前 回复
lzp_lrp
lzp_lrp   Ds   Rxr 2015.06.10 09:31

未看出问题,乘法运算出错了吗?如果不对,建议你单步调试一下,应该很快就能找到问题的原因

yr131
yr131 一直没找到乘法有什么错,不知道有什么方法检验?
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
矩阵求和-重载运算符
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:田成琳 *完成日期:2014 年 5 月 13 日 *版本号:v1.0 *对任务及求解方法的描述部分: *输入描述:两个2行3列的矩阵 *问题描述:有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使
C++习题 矩阵求和--重载运算符
/* Description 有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加(如c=a+b)。 重载流插入运算符“>”,使之能用于该矩阵的输入和输出。 Input 两个2行3列矩阵 Output 矩阵之和 Sample Input 1 2 3 4 5 6 7 8 9 1 2 3 Sample Output 8 10 12 5 7 9 */ #include
C++:有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:c=a+b.
#include &amp;lt;iostream&amp;gt;using namespace std;class Complex{public:    Complex();    void input();     Complex operator  + (Complex &amp;amp;c);    void display();private:    int a[2][3];};Complex::Complex...
有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运载符“+”,使之能用于矩阵相加。如:c=a+b。
 #include#includeusing namespace std;class Matrix{    public:        Matrix()        {            memset(mat,0,sizeof(mat));        }        Matrix operator + (Matrix &);      
有两个矩阵a和b,均为2行3列。求两个矩阵之和。(C++重载)
 有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加,如c=a+b。重载流插入运算符“&amp;lt;&amp;lt;”和流提取运算符“&amp;gt;&amp;gt;”,使之能用于该矩阵的输入和输出 这题很简单,不需要赘述#include &amp;lt;iostream&amp;gt;using namespace std;class qua{ public : friend ostream&amp;amp; o...
C/C++ 重载+运算符重载加号 实现矩阵相加
#include<iostream> #include<iomanip> using namespace std; class Complex { private: int i,j,n,a[2][3]; public: Complex(); Complex operator+(Complex &c); void disp
Chapter10——有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加
#include using namespace std; class Matrix { public: Matrix(); friend Matrix operator + (Matrix&,Matrix&); void input(); void display(); private: int mat[2][3]; }; Matrix::Matrix() { for
矩阵运算源代码
包含矩阵幂运算、矩阵乘法运算、矩阵除法运算、矩阵加法运算、矩阵减法运算、求矩阵的绝对值、求矩阵A的转置矩阵B、非奇异矩阵求逆等
矩阵类 C++编程
实现 矩阵类 转置 求逆 求行列式 求内积 重载运算符
有两个矩阵a和b 均为2行3列 求两个矩阵之和第四题
#include using namespace std; class Matrix // 定义 Matrix 类 {public: Matrix(); // 默认构造函数 friend Matrix oper