题解 | #矩阵乘法#

矩阵乘法

https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b

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

int main() {
    int x,y,z;
    scanf("%d\n%d\n%d\n",&x,&y,&z);
    int **A=(int**)malloc(x*sizeof(int*));
    int **B=(int**)malloc(y*sizeof(int*));
    int **C=(int**)calloc(x,sizeof(int*));
    for(int i=0;i<x;i++){
        A[i]=(int*)malloc(y*sizeof(int));       //  为A矩阵分申请配x*y内存
    }
    for(int i=0;i<y;i++){
        B[i]=(int*)malloc(z*sizeof(int));       //  为B矩阵申请分配y*z内存
    }
    for(int i=0;i<x;i++){
        C[i]=(int*)calloc(z,sizeof(int));       //  为C矩阵申请分配x*z内存
    }

    for(int i=0;i<x;i++){       //  载入A矩阵数据
        for(int j=0;j<y;j++){
            scanf("%d ",&A[i][j]);
        }
        scanf("\n");
    }
    for(int i=0;i<y;i++){       //  载入B矩阵数据
        for(int j=0;j<z;j++){
            scanf("%d ",&B[i][j]);
        }
        scanf("\n");
    }
    for(int i=0;i<x;i++){
        for(int j=0;j<z;j++){
            for (int k=0; k<y; k++) {
                C[i][j]+=A[i][k]*B[k][j];
            }            
        }
    }

    for(int i=0;i<x;i++){       //  载出C矩阵数据
        for(int j=0;j<z;j++){
            printf("%d ",C[i][j]);
        }
        printf("\n");
    }

    return 0;
}

全部评论

相关推荐

肥肠椒绿:双非本可不就犯天条了,双非本就应该打入无间地狱
点赞 评论 收藏
分享
02-16 01:39
南昌大学 Java
重剑Ds:感觉不太可能 后端都减飞了 根本不缺人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务