矩阵相乘

xiaoxiao2021-02-28  28

#define MAX 10 void js(int m,int n,int p,long jz1[MAX][MAX], long jz2[MAX][MAX],long jz3[MAX][MAX]) { int i,j,k; long lSum; for(i=0;i<m;i++)//矩阵1的行 for(j=0;j<p;j++)//矩阵2的行 { lSum=0; for(k=0;k<n;k++)//矩阵1和2的列 lSum+=jz1[i][k]*jz2[k][j]; jz3[i][j]=lSum; }//运算过程是先让矩阵1的第一行乘以矩阵2 的第一列,结果放矩阵3 的第一个位置。以此类推 } int main() { long jz1[MAX][MAX],jz2[MAX][MAX];//定义的两个相乘的矩阵 long jz3[MAX][MAX],x; int i,j,m,n,p; /*输入两个矩阵的的行列数m,n,p*/ printf("\n请输入矩阵1的行:\n"); scanf("%d",&m); printf("请输入矩阵1的列:\n"); scanf("%d",&n); printf("请输入矩阵2的行:\n"); scanf("%d",&p); /*输入第一个矩阵的每个元素*/ printf("\n请输入第一个矩阵的元素:\n"); for(i=0;i<m;i++) for(j=0;j<n;j++) { scanf("%ld",&x); jz1[i][j]=x; } /*输入第二个矩阵的每个元素*/ printf("\n输入第二个矩阵的每个元素"); for(i=0;i<n;i++) for(j=0;j<p;j++) { scanf("%ld",&x); jz2[i][j]=x; } js(m,n,p,jz1,jz2,jz3); printf("\nResult: \n"); for(i=0;i<m;i++) { for(j=0;j<p;j++) printf("%ld ",jz3[i][j]); printf("\n"); } }

 

转载请注明原文地址: https://www.6miu.com/read-2050002.html

最新回复(0)