千家信息网

C语言中如何求两个矩阵的乘积

发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,这篇文章将为大家详细讲解有关C语言中如何求两个矩阵的乘积,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。分析在数学中,矩阵(Matrix)是一个按照长方
千家信息网最后更新 2025年02月16日C语言中如何求两个矩阵的乘积

这篇文章将为大家详细讲解有关C语言中如何求两个矩阵的乘积,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

分析

在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。


矩阵的乘法有以下注意事项:

  • 1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。

  • 2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。

  • 3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。


代码实现:只需要用矩阵乘积的公式求出新的矩阵,即为两个矩阵的乘积,程序中还需要判断输入的两个矩阵是否可以相乘。

代码实现

#include int main(){    int line_a = 0; //A矩阵行数    int col_a = 0; //A矩阵列数    int line_b = 0; //B矩阵行数    int col_b = 0; //B矩阵列数    int i = 0;    int j = 0;    int k = 0;    /* 获取A矩阵行数和列数 */    printf("请输入A矩阵的行数和列数\n");    scanf("%d%d", &line_a, &col_a);    int matrix_A[line_a][col_a];    /* 获取B矩阵行数和列数 */    printf("请输入B矩阵的行数和列数\n");    scanf("%d%d", &line_b, &col_b);    int matrix_B[line_b][col_b];    if(col_a != line_b)    {        printf("error,A矩阵的列数和B矩阵的行数必须相等!\n");        return 0;    }    int matrix_C[line_a][col_b]; //C矩阵:A矩阵和B矩阵的乘积    /* 获取A矩阵元素 */    for(i = 0; i< line_a; i++)    {        printf("请输入A矩阵第%d行元素\n", i);        for(j = 0; j < col_a; j++)        {            scanf("%d", &matrix_A[i][j]);        }    }    /* 获取B矩阵元素 */    for(i = 0; i< line_b; i++)    {        printf("请输入B矩阵第%d行元素\n", i);        for(j = 0; j < col_b; j++)        {            scanf("%d", &matrix_B[i][j]);        }    }    /* 打印矩阵 */    printf("输入的A矩阵为:\n");    for(i = 0; i < line_a; i++)    {        for(j = 0; j < col_a; j++)        {            printf("%d\t", matrix_A[i][j]);        }        printf("\n");    }    printf("输入的B矩阵为:\n");    for(i = 0; i < line_b; i++)    {        for(j = 0; j < col_b; j++)        {            printf("%d\t", matrix_B[i][j]);        }        printf("\n");    }    /* 求AB的乘积,即矩阵C */    for(i = 0; i < line_a; i++)    {        for(j = 0; j < col_b; j++)        {            matrix_C[i][j] = 0; //初始化            for(k = 0; k < col_a; k++)              matrix_C[i][j] += matrix_A[i][k] * matrix_B[k][j];        }    }    /* 打印C矩阵 */    printf("A矩阵乘B矩阵:\n");    for(i = 0; i < line_a; i++)    {        for(j = 0; j < col_b; j++)        {            printf("%d\t", matrix_C[i][j]);        }        printf("\n");    }    return 0;}

运行结果

关于C语言中如何求两个矩阵的乘积就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0