矩阵相乘C语言

来源:互联网 发布:听戏曲的软件 编辑:程序博客网 时间:2024/05/16 17:41

#include<stdio.h>
int main()
{
int count=0;
int a[3][4] = { { 2, 5, -8, 7 },{ 3, 8, 13, 2 }, { -6, 11, -2, 0 } };//3行四列
int b[4][2] = { { 22, 7 }, { -3, 16 }, { -9, 0 }, { 1, 8 } };
int c[3][2], i, j, k;//定义c数组为了用来储存a*b的结果,因为相乘的结果为3行2列(根据矩阵乘法)
for (i = 0; i < 3; i++){//第一个矩阵行数不超过3
for (j = 0; j < 2; j++){//第二个矩阵列数不超过2
c[i][j] = 0;//初始化存放结果的数组为0
for (k = 0; k < 4; k++)
c[i][j] += a[i][k] * b[k][j];//根据矩阵乘法,第一个矩阵的第i行第k列元素与第二个矩阵第j列的第k行元素对应相乘
}
}
for (i = 0; i < 3; i++)
{
    for (j = 0;j < 2; j++){
printf("%-5d",  c[i][j]);//-5表示每5位一个结果,不满5位的数字用空格补上
count++;//用来计算结果元素数
}
if (count % 2 == 0)//每出现两个数组元素换行
{
printf("\n");
}
}

}

原创粉丝点击