C=AB 沒錯吧?
我用C寫的,除了matrix mutiply的演算法要想一下,其他應該都不難
輸出輸入要改再自己改囉~
複製程式
#include <stdio.h>
int main()
{
int m, n, p;
int i, j, k;
int a[10][10], b[10][10], c[10][10];
/* input m, n, p */
scanf("%d %d %d", &m, &n, &p);
/* input A */
for(i=0; i<m; i++)
for(j=0; j<n; j++)
scanf("%d", &a[i][j]);
/* input B */
for(i=0; i<n; i++)
for(j=0; j<p; j++)
scanf("%d", &b[i][j]);
/* initialize C */
for(i=0; i<m; i++)
for(j=0; j<p; j++)
c[i][j] = 0;
/* multiple */
for(i=0; i<m; i++)
for(j=0; j<p; j++)
for(k=0; k<n; k++)
c[i][j] = c[i][j] + a[i][k]*b[k][j];
printf("\n");
/* display C */
for(i=0; i<m; i++)
{
for(j=0; j<p; j++)
printf("%4d", c[i][j]);
printf("\n");
}
return 0;
}
sample input 1:
複製程式
3 2 3
5 1
3 4
2 6
2 2 1
6 4 5
sample output 1:
複製程式
16 14 10
30 22 23
40 28 32
sample input 2:
複製程式
3 3 3
1 2 5
0 1 4
2 1 1
1 3 2
2 3 4
1 5 1
sample output 2:
複製程式