标签:
可能我写的比较繁琐,也是比较复杂慢的方法 不过最后还是实现了两个矩阵相乘,后续再简化把,废话不多说附上代码和运行结果#include"stdafx.h" #include<iostream> using namespace std; int Calculate(int a[10][10],int b[10][10]) { int n,m,l,k; int c[10][10]; int sum=0; cout<<"请输入A矩阵的行和列:"<<endl; cin>>n>>m; cout<<"请输入A矩阵的元素:"<<endl; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin>>a[i][j]; } } cout<<"请输入B矩阵的行和列:"<<endl; cin>>l>>k; cout<<"请输入B矩阵的元素:"<<endl; for(int i=0;i<l;i++) { for(int j=0;j<k;j++) { cin>>b[i][j]; } } cout<<"A矩阵为:"<<endl; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cout<<a[i][j]<<" "; } cout<<endl; } cout<<"B矩阵为:"<<endl; for(int i=0;i<l;i++) { for(int j=0;j<k;j++) { cout<<b[i][j]<<" "; } cout<<endl; } if(m==l) { for(int i=0;i<n;i++) { for(int j=0;j<k;j++) { for(int x=0;x<m;x++) { sum+=a[i][x]*b[x][j]; } } for(int s=0;s<k;s++) { c[i][s]=sum; } } } else { cout<<"两个矩阵的下标不同,无法相乘....\n"; return 0; } cout<<"相乘矩阵为:"<<endl; for(int i=0;i<n;i++) { for(int j=0;j<k;j++) { cout<<c[i][j]; } cout<<endl; } return c[n][k]; } int main() { int a[10][10],b[10][10]; Calculate(a,b); system("pause"); return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
矩阵相乘这个代码也应该是需要掌握的内容,今天一大早就写了一下
标签:
原文地址:http://blog.csdn.net/jy_he/article/details/47750383