矩阵相乘这个代码也应该是需要掌握的内容,今天一大早就写了一下

来源:互联网 发布:java的反射如何实现 编辑:程序博客网 时间:2024/05/03 17:29
可能我写的比较繁琐,也是比较复杂慢的方法 不过最后还是实现了两个矩阵相乘,后续再简化把,废话不多说附上代码和运行结果
#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;}

0 0
原创粉丝点击