NYOJ 623 A*B Problem II
#include<stdio.h>
#define ROWS 55
#define COWS 55
int a[ROWS][COWS];
int b[ROWS][COWS];
int c[ROWS][COWS];
int main(){
int m,n,k,i,j,t;
while(scanf("%d%d%d",&m,&n,&k) && (m != 0 && n != 0 && k != 0 )){
for(i = 0; i < m; i++){
for(j = 0; j < n; j++)
scanf("%d",&a[i][j]);
}
for(i = 0; i < n; i++){
for(j = 0; j < k; j++)
scanf("%d",&b[i][j]);
}
for(i = 0; i < m; i++){
for(j = 0; j < k; j++){
c[i][j] = 0;
for(t = 0; t < n; t++)
c[i][j] += a[i][t]*b[t][j];//需要相乘相加。
}
}
for(i = 0; i < m; i++){
for(j = 0; j < k; j++)
printf("%d ",c[i][j]);
printf("\n");
}
}
return 0;
}
用一个二维数组将数存起来,然后将其各行和各列相乘相加。一开始写的时候遗漏了,相加这个运算过程,导致错误。