计算矩阵乘法

线性代数特别不好算,用程序解决繁琐的事,电脑最喜欢干的事就穷举。

比如计算:3行4列矩阵乘以4行5列矩阵。
代码展示:

#include<stdio.h>

#define M 3
#define N 4
#define L 5

int main()
{
    
    
   int i,j,k;
   int a[M][N];
   int b[N][L];
   int c[M][L]={
    
    0};

   printf("输入3行4列矩阵(12个数):\n");
   for(i=0;i<M;i++)
   {
    
    
	   for(j=0;j<N;j++)
	   {
    
    
		   scanf("%d",&a[i][j]);
	   }
   }

   printf("输入4行5列矩阵(20个数):\n");
   for(i=0;i<N;i++)
   {
    
    
	   for(j=0;j<L;j++)
	   {
    
    
		   scanf("%d",&b[i][j]);
	   }
   }

   for(i=0;i<N;i++)
   {
    
    
	   for(k=0;k<L;k++)
	   {
    
    
		   for(j=0;j<N;j++)
		   {
    
    
			   c[i][k]+=a[i][j]*b[j][k];
		   }
	   }
   }

   printf("结果为:\n");
   for(i=0;i<M;i++)
   {
    
    
	   for(j=0;j<L;j++)
	   {
    
    
		   printf("%4d",c[i][j]);
	   }
	   printf("\n");
   }

   return 0;
}


代码分析:
用宏定义对矩阵进行设定,矩阵几行几列具有可改性。
算法正是线性代数所教的计算准则。循环嵌套配合二维数组。

猜你喜欢

转载自blog.csdn.net/yooppa/article/details/113934331
今日推荐