求大神解答一下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;
}

解决方案

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

解决方案二:

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

解决方案三:

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

时间: 2024-12-30 10:41:27

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

服务器-oracle问题跪求大神解答!!!

问题描述 oracle问题跪求大神解答!!! 怎么使用plsqldev把服务器上面的数据库整个导入到我本地电脑上的oracle中啊. 解决方案 跪求大神解答liunx 串口通信问题,跪求各位大神解答 解决方案二: 导出步骤: 1 tools ->export user object 选择选项,导出.sql文件.导出的是表结构 2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件.导出的是表结构以及表数据 导入步骤: 注:导入之前最好把以

图片-求大神解答,怎么画一个Android仪表盘

问题描述 求大神解答,怎么画一个Android仪表盘 求各位指点怎么画这样一个仪表盘,我之前使用过drawArc(),但是没能画出来 解决方案 圆圈很好画,至于那些刻度,你可以旋转canvas,而不用每次都计算点的坐标,这样就好弄了 解决方案二: 可以仿支付宝里的例子 解决方案三: 可以仿支付宝里的例子

字符-一道acm水题 all in all 一直找不出错误 求大神解答

问题描述 一道acm水题 all in all 一直找不出错误 求大神解答 描述字符串s和t均由字母组成,若在t中除去一些字母能够得到s,我们就说s是t的一个子串.比如abc就是acbefc的子串(acbefc去掉第二.第四.第五个字符后就得到abc)输入有若干组输入数据,每组一行,分别为字符串s和t,s与t之间用空格隔开输出对于一组s与t,若s是t的子串,则输出Yes,否则输出No 样例输入sequence subsequence abc acb VERDI vivaVittorioEmanu

c++-一道OJ上的题,数的划分,求大神解答

问题描述 一道OJ上的题,数的划分,求大神解答 有N个排列好的数,不改变排列次序,要分成K个部分,每个部分至少有一个数, (其中K <=N),若将每一个部分的数相乘,然后将K个部分相加,则可以得到一个表达式,求这个表达式的最大数值. 输入格式文件第一行为2个整数N.K下面N行为N个整数(N<=100,整数的范围都在整型以内)样例输入5 2 12345 样例输出121 我的思路是动态规划:以f(ij)表示分成i组,最后一个数是j的最大数值.以下是我的代码: #include <iostre

tang-c++编程题,求大神解答............谢谢啦...........

问题描述 c++编程题,求大神解答............谢谢啦........... 在一个数组中首先判断里的自符是否为回文字符,如果是在按其长度排序,若相同长度的则按ASCII码排序(用c++)求大神解救....... 解决方案 花了一小时弄的,,,亲测. #include<iostream> using namespace std; bool judge(char *str); void sort(char *Selected[],int n); int Length(char *str

单链表-请教C编程题,本人初学者,求大神解答,万分感谢

问题描述 请教C编程题,本人初学者,求大神解答,万分感谢 求大侠帮忙:C语言程序设计---编程题说明:以下所有题目程序应是非递归的) 编写一个函数,输出整数m的全部素数因子.例如,m=120时,素数因子为:2,2,2,3,5 请编写程序判断一个字符串是否是回文.若是回文,函数返回值为1,否则返回值为0.(回文是顺读和倒读都一样的字符串).要求: 1) 编写sub()判断一字符串是否为回文 2) 在主函数中完成数据的输入与结果的输出 3.起泡排序是把大的元素向下移,也可以将小的元素向上移,请给出下

出现频率-一道C语言编程题,本人初学者,求大神解答

问题描述 一道C语言编程题,本人初学者,求大神解答 编写程序实现功能:数据文件story.txt是一篇英文小故事,请先统计其中26个字母的出现次数. 要求一:再根据用户要求,输出某个字母的出现次数,直到用户输入#为止. 要求二:请输出出现频率最高的三个字母和它们的出现次数. 解决方案 #include #include #include int main() { int alpha[26]={0}; //用于计数26个字母出现的次数 FILE *text; //FILE 指针 char ch;

谢谢大家-java综合题,我真的不知道set get 和this联合用怎么用还有super 求大神解答

问题描述 java综合题,我真的不知道set get 和this联合用怎么用还有super 求大神解答 综合题(本题主要是考验同学们对Java语法的熟悉程度) 定义一个抽象的"Role"类,有姓名,年龄,性别等成员变量 1. 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),再通过GetXXX()和SetXXX()方法对各变量进行读写.具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法.Role类中要体现出this的几种用法. 2. 从Role类派

内存管理-一道编程题用c语言实现这些功能时间有限1天时间求大神解答

问题描述 一道编程题用c语言实现这些功能时间有限1天时间求大神解答 有用户空间100kb,并规定作业的相应程序浇入内存连续区域,并不能被移动.作业与进程均采用sjf算法.输入为一组作业的进入时间,需要的内存容量(不超过100k)和运行时间. 要求: (1)按时间顺序给出每个作业的执行顺序,开始时间和结束时间,以及发生调度时内存各分区的状态: (2)计算这组作业的平均周转时间和平均带权周转时间: (3)实现作业一级调度和进程一级调度,包括调度算法和数据结构: (4)实现动态分区内存管理,包括内存分