⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 矩阵+-.txt

📁 为了注册会员上载的矩阵运算源码,东西不多.希望大家谅解
💻 TXT
字号:
#include<iostream.h>   
  #include<iomanip.h>   
  #define   max   20   
  struct   triple   
  {   
  int   m,n;   
  int   num;   
  };   
  struct   matrix   
  {   
  triple   data[max];   
  int   nz,line,row;   
  };   
    
  void   input(matrix   &m1,matrix   &m2   )   
  {   
        cout<<"请输入距阵1的行数和列数:"<<endl;   
        cin>>m1.line>>m1.row;   
        cout<<"请输入数据!(数值,行,列)!"<<endl;   
          
        int   i=0;   
        cout<<"当输入数值为0时,输入结束!"<<endl;   
        
        while(1)   
        {   
              cin>>m1.data[i].num;   
      if(m1.data[i].num==0)   
        break;   
      cin>>m1.data[i].m;   
      cin>>m1.data[i].n;   
      i++;   
        }   
            m1.nz=i;   
        cout<<"请输入距阵2的行数和列数:"<<endl;   
        cin>>m2.line>>m2.row;   
        cout<<"请输入数据!(数值,行,列)!"<<endl;   
          
          i=0;   
        cout<<"当输入数值为0时,输入结束!"<<endl;   
        
        while(1)   
        {   
              cin>>m2.data[i].num;   
      if(m2.data[i].num==0)   
        break;   
      
      cin>>m2.data[i].m;   
      cin>>m2.data[i].n;   
      i++;   
        }   
        m2.nz=i;   
  }   
    
  void   print(matrix   r)   
  {   
  cout<<"计算结果如下:"<<endl;   
  int   i,j,k;   
  for(   i=0;i<r.line;i++)   
  {   
  for(   j=0;j<r.row;j++)   
  {   
  for(   k=0;k<r.nz;k++)   
  {   
  if(i==r.data[k].m&&j==r.data[k].n)   
  break;   
  }   
  if(k==r.nz)   
  cout<<setw(6)<<0;   
  else   
  cout<<setw(6)<<r.data[k].num;   
  }   
  cout<<endl<<endl<<endl;   
  }   
  }   
    
  void   add(matrix   &r,   matrix   &m1,   matrix   &m2)   
  {   
  r.line=m2.line;r.row=m2.row;   
  int   k=0,i=0,j=0;   
    
      
  for(   i;i<m1.nz;i++)   
  {   
      
          r.data[k].num=m1.data[i].num;   
      r.data[k].m=m1.data[i].m;   
              r.data[k].n=m1.data[i].n;   
  k++;   
  }   
    
      for(i=0;i<m2.nz;i++)   
      {   
      for(j=0;j<m1.nz;j++)   
      {   
      if     ((m1.data[j].m==m2.data[i].m)&&(m1.data[j].n==m2.data[i].n))   
      {   
                                      r.data[j].num+=m2.data[i].num;   
        break;   
      }   
      }   
      if(j==m1.nz)   
    
      {   
      r.data[k].num=m2.data[i].num;   
      r.data[k].m=m2.data[i].m;   
      r.data[k].n=m2.data[i].n;   
      k++;   
      }   
      }   
      r.nz=k;   
      }   
    
        void   dec(matrix   &r,   matrix   &m1,   matrix   &m2)   
  {   
  r.line=m2.line;r.row=m2.row;   
  int   k=0,i=0,j=0;   
    
      
  for(   i;i<m1.nz;i++)   
  {   
      
          r.data[k].num=m1.data[i].num;   
      r.data[k].m=m1.data[i].m;   
              r.data[k].n=m1.data[i].n;   
  k++;   
  }   
    
      for(i=0;i<m2.nz;i++)   
      {   
      for(j=0;j<m1.nz;j++)   
      {   
      if     ((m1.data[j].m==m2.data[i].m)&&(m1.data[j].n==m2.data[i].n))   
      {   
                                      r.data[j].num-=m2.data[i].num;   
        break;   
      }   
      }   
      if(j==m1.nz)   
    
      {   
      r.data[k].num=-m2.data[i].num;   
      r.data[k].m=m2.data[i].m;   
      r.data[k].n=m2.data[i].n;   
      k++;   
      }   
      }   
      r.nz=k;   
      }   
    
  void   mul(matrix   &r,matrix   &m1,matrix   &m2)   
  {   
  int   i=0,j=0,k=0,temp=0;   
  r.nz=0;   
  r.line=m1.line;   
  r.row=m2.row;   
  for(i;i<m1.nz;i++)   
  {   
  j=0;   
  for(   j;j<m2.nz;j++)   
  {   
  if(m1.data[i].n==m2.data[j].m)   
  {   
  temp=m1.data[i].num*m2.data[j].num;   
  k=0;   
          for(k;k<r.nz;k++)   
  {   
  if((r.data[k].m==m1.data[i].m)&&(r.data[k].n==m2.data[j].n))   
  break;   
  }   
    
  if(k==r.nz)   
  {   
  r.data[r.nz].num=temp;   
  r.data[r.nz].m=m1.data[i].m;   
  r.data[r.nz].n=m2.data[j].n;   
  r.nz++;   
  }   
  else   
  r.data[k].num+=temp;   
  }   
  }   
  }   
  }   
                                              
  void   main()   
  {   
        matrix   m1,m2,   r;   
    
        input(m1,m2);   
        add(r,m1,m2);   
        print(r);   
    
        input(m1,m2);   
        dec(r,m1,m2);   
        print(r);   
    
        input(m1,m2);   
        mul(r,m1,m2);   
        print(r);   
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -