题解 | #矩阵乘法#
矩阵乘法
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;
}
查看14道真题和解析