矩阵乘法
三个循环,前两层控制目标矩阵的阶数,最内层控制目标矩阵对应的每个元素的算法。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,n,p;
int i,j,k;
printf("please input : m,n,p\n");
scanf("%d %d %d",&m,&n,&p);
int a[m][n],b[n][p];
int c[m][p];
puts("Please input the first matrix:");
for(i=0 ; i<m ; i++)
{
for(j=0 ; j<n ; j++)
{
scanf("%d",&a[i][j]);
}
}
puts("Please input the second matrix:");
for(i=0 ; i<n ; i++)
{
for(j=0 ; j<p ; j++)
{
scanf("%d",&b[i][j]);
}
}
puts("The result is:");
for(i=0 ; i<m ; i++)
{
for(j=0 ; j<p ; j++)
{
int t=0;
for(k=0 ; k<n ; k++)
{
t+=a[i][k]*b[k][j];
}
c[i][j]=t;
}
}
for(i=0 ; i<m ; i++)
{
printf("%d",c[i][0]);
for(j=1 ; j<p ; j++)
{
printf(" %d",c[i][j]);
}
printf("\n");
}
}