基于C语言的矩阵乘简单实现:
1.通过输入确定原矩阵的行数、列数。
2.设定for循环读入数据填充矩阵M、N。
3.通过一个三重循环将M、N内元素相乘(在此程序直接在第三层循环结束后输出所得数据并保存到K矩阵,省去了再通过二重循环输出K矩阵的过程)。
ps:此程序的输入输出都用了int整数型,如需处理其他类型,请自行更改,且输出结果采用%-3d格式,即左对齐、每个字符占3个字符长度。
其主要的部分在于一个三重循环:
for(h=0;h<i;h++)
{
for(b=0;b<n;b++)
{
for(a=0;a<j;a++)
{
sum=sum + M[h][a]*N[a][b];
if(a==j-1)
{
printf("%-3d",sum);
K[h][b]=sum;
}
}
a=1;
sum=0;
}
printf("\n");
}
其主要核心思想在于:M[i,j] * N[m,n]矩阵的结果为K[i,n];即最后的结果应为i * n的一个
矩阵,那么所设定的第一层循环就是K矩阵的行(循环次数最少),第二层循环为M矩阵的列和N矩阵
的行,第三层矩阵循环N矩阵的列(循环次数最多)。
#include <stdio.h>
int main()
{
int i,j,m,n,a,b,h,sum;
sum=0;
printf("请输入待乘矩阵分别对应的行数、列数:\n");
scanf("%d %d %d %d",&i,&j