WarMj:简单矩阵乘法代码解析

2017-07-09  本文已影响0人  WarMj
原式<br>图片出处:http://zh.wikihow.com/<br>
下标展开

目前还不会申请动态数组(需要指针),所以先分析固定数组,之后补上。

矩阵分析

代码分析

#include<stdio.h>
#include<stdlib.h>

//函数声明
void Matrix_Mul(const int ma[2][3], const int mb[3][2], int mc[2][2]);
void Put_Matrix(const int mc[2][2]);

int main()
{
    int ma[2][3] = {{2, 3, -1}, {6, 1, -2}};
    int mb[3][2] = {{4, -5}, {-3, 0}, {1, 2}};
    int mc[2][2] = {0};
    
    Matrix_Mul(ma, mb, mc);
    Put_Matrix(mc);
    
    system("pause");
    return 0;
 } 
  
//矩阵乘法函数 
void Matrix_Mul(const int ma[2][3], const int mb[3][2], int mc[2][2])
{
    int i, j, k;
    for(i = 0; i < 2; i++)//矩阵结果的行数。
    {
        for(j = 0; j < 2; j++)//矩阵结果的列数。
        {
            for(k = 0; k < 3; k++)//矩阵结果中某元素在计算过程中的循环次数(行与列相等的数)。
            {
                mc[i][j] += ma[i][k] * mb[k][j];
            }
        }
    }
 }

//矩阵输出函数
void Put_Matrix(const int mc[2][2])
{
    for(int i = 0; i < 2; i++)
    {
        for(int j = 0; j < 2; j++)
        {
            printf("%.2d ", mc[i][j]);
        }
        printf("\n");
    }
}
上一篇下一篇

猜你喜欢

热点阅读