如何用C语言实现该矩阵乘法

img


希望能得到一些指教,学不太明白怎么把四列的矩阵乘成三列的,希望能给出代码答复。

#include<stdio.h>
#include<stdlib.h>
#define M 100

int main(void)
{
    int i,j,k,matrix1[M][M],matrix2[M][M],row1=3,col1=4,row2=4,col2=3,matrix[M][M];
   
    printf("请输入第一个3X4矩阵:\n");
    for(i=0;i<row1;i++){
        for(j=0;j<col1;j++){
            scanf("%d",&matrix1[i][j]);
        }
    }
   printf("请输入第二个4X3矩阵:\n");
    for(i=0;i<row2;i++){
        for(j=0;j<col2;j++){
            scanf("%d",&matrix2[i][j]);
        }
    }
    
    for(i=0;i<row1;i++){
        for(j=0;j<col2;j++){
            matrix[i][j]=0;
        }
    }

    for(i=0;i<row1;i++){
        for(j=0;j<col2;j++){
            for(k=0;k<col1;k++){
                matrix[i][j]=matrix[i][j]+matrix1[i][k]*matrix2[k][j];
            }
        }
    }

    for(i=0;i<row1;i++){
        for(j=0;j<col2;j++){
            printf("%d ",matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}

运行结果:

img

代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int a[3][4], b[4][3];
    int c[3][3];
    int i, j, k, l;
    printf("请输入第一个3*4矩阵:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    printf("请输入第二个4*3矩阵:\n");
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &b[i][j]);
        }
    }

    //相乘
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            c[i][j] = 0;
            for (k = 0; k < 4; k++)
                c[i][j] += a[i][k] * b[k][j];
            printf("%d ", c[i][j]);
        }
        printf("\n");
    }

    return 0;
}

暴力法,用二维数组,遍历,相乘。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632