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 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏