yr131 2015-06-09 14:02 采纳率: 33.3%
浏览 1463

求大神解答一下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 2015-06-09 14:18
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器