c ++ 实现一个的n*n矩阵类,重载符号*以实现矩阵相乘实现一个的矩阵类,矩阵类的成员数据是一个n×n的整数数组,重载符号*以实现矩阵相乘(提示:注意矩阵运算操作要满足所需条件,数组申请

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 09:00:09
c ++ 实现一个的n*n矩阵类,重载符号*以实现矩阵相乘实现一个的矩阵类,矩阵类的成员数据是一个n×n的整数数组,重载符号*以实现矩阵相乘(提示:注意矩阵运算操作要满足所需条件,数组申请

c ++ 实现一个的n*n矩阵类,重载符号*以实现矩阵相乘实现一个的矩阵类,矩阵类的成员数据是一个n×n的整数数组,重载符号*以实现矩阵相乘(提示:注意矩阵运算操作要满足所需条件,数组申请
c ++ 实现一个的n*n矩阵类,重载符号*以实现矩阵相乘
实现一个的矩阵类,矩阵类的成员数据是一个n×n的整数数组,重载符号*以实现矩阵相乘(提示:注意矩阵运算操作要满足所需条件,数组申请可以使用new).

c ++ 实现一个的n*n矩阵类,重载符号*以实现矩阵相乘实现一个的矩阵类,矩阵类的成员数据是一个n×n的整数数组,重载符号*以实现矩阵相乘(提示:注意矩阵运算操作要满足所需条件,数组申请
// 以下实现供参考
#include<stdlib.h>
#include<stdio.h>
class Matrix{
      private:
      int sz;
      int **data;
      public:
      Matrix(){sz=-1;}
      Matrix(int s){
         sz=s;
         data=new int*[sz];
         for(int i=0;i<sz;i++){
                 data[i]=new int[sz];
         }
      }
      Matrix(int s,const int *val){
         sz=s;
         data=new int*[sz];
         for(int i=0;i<sz;i++){
           data[i]=new int[sz];
           for(int j=0;j<sz;j++)
             data[i][j]=val[i*sz+j];
         }
      } 
           
      ~Matrix(){
          for(int i=0;i<sz;i++){
                  delete[] data[i];
          }
          if(sz>0)
                  delete[] data;
      }
      int getSize()const {return sz;}
      void setSize(int n){
           if(sz>0){
                    for(int i=0;i<sz;i++)
                      delete[] data[i];
                    delete[] data;
           } 
           data=new int*[n];
           for(int i=0;i<n;i++)
             data[i]=new int[n];
           sz=n;
      }
      int get(int i,int j)const {return data[i][j];}
      int set(int i,int j,int val){data[i][j]=val;}
      Matrix operator*(const Matrix& mx){
              int i,j,k;
              Matrix prod(sz);
              for(i=0;i<sz;i++){
                for(j=0;j<sz;j++){
                  int sum=0;
                  for(k=0;k<sz;k++){
                    sum+=data[i][k]*mx.get(k,j);
                  }
                  prod.set(i,j,sum);
                }
              }
              return prod;
      }
      Matrix& operator=(const Matrix& mx){
              sz=mx.getSize();
              for(int i=0;i<sz;i++)
              for(int j=0;j<sz;j++)
              set(i,j,mx.get(i,j));
      }
      void print()const{
           for(int i=0;i<sz;i++){
              for(int j=0;j<sz;j++){
              printf("%4d ",data[i][j]);
              }
              printf("\n");
           }
      }
};
int main(){
    const int a[]={1,2,3,4,5,6,7,8,9};
    const int b[]={3,4,5,6,7,8,9,0,1};
    Matrix  m1(3,a),m2(3,b);
    Matrix m(3);
    m=m1*m2;
    m.print();
    system("pause");
    return 0;
}

c ++ 实现一个的n*n矩阵类,重载符号*以实现矩阵相乘实现一个的矩阵类,矩阵类的成员数据是一个n×n的整数数组,重载符号*以实现矩阵相乘(提示:注意矩阵运算操作要满足所需条件,数组申请 重载矩阵加法运算.设A,B,C均为m行,n列的矩阵,程序能实现C=A+B的操作.要用运算符重载做,用C++实现 编写一个程序实现一个矩阵类,通过重载+,-,*运算符来实现矩阵的加,减,乘操作.最好用C++实现,稍微有点问题,编译通不过啊, 编程实现:输入一个 n*n 的矩阵,求出两条对角线元素值之和.用C语言编程 定义一个复数类,通过重载运算符:*,/,直接实现二个复数之间的乘除运算编写一个完整的程序,测试重载运算符的正确性.要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载.⑴ 1、定义一个N*N的矩阵,输出其对角线元素、上三角矩阵和下三角矩阵; 2、 编程实现N阶方阵的乘法运算.提示:N可以用符号常量实现;矩阵乘法公式:C[i][j]=∑A[i][k]*B[k][j](k=0到N-1)n 定义一个矩阵类,重载运算符+与*,以完成两矩阵相加与相乘运算 编写一个分数类fraction ,其分子、分母为整数,通过重载运算符+、-、*、/ ,实现该类数据之间的四则运算 定义一个N*N的矩阵,输出其对角线元素、上三角矩阵和下三角矩阵; 2、 编程实现N阶方阵的乘法运算. 定义一个复数类CComplex,通过重载运算符 + ,直接实现两个复数之间的加法运算.定义一个复数类CComplex,通过重载运算符”+”,直接实现两个复数之间的加法运算.运算符”+”用成员函数实现重载. 定义一个复数类,实现两个复数相加.并把它显示出来.用操作符重载. c++定义一个集合类,怎样用操作符重载实现交集并集运算 如何实现求两个矩阵A(m×n),B(Kxn)的乘积C(mxn) C语言,输入一个(1~20)的数n!得到n*n个数,以n*n矩阵顺时针输出! C语言(指针):编写一个函数实现n*n矩阵转置.在主函数中用scanf输入矩阵元素;将数组名作为函数实参. 定义一个复数类Complex,定义带有2个参数(都为缺省参数)的构造函数;重载“/”(成员函数实现);重载“ VB:随机生成两个n×n矩阵,先写程序实现这两个矩阵的相加 C++编程,定义一个复数类定义一个复数类,并重载运算符,以实现复数的加法与减法运算,及显示运算结果