设n×n阶矩阵A和B,计算C=A×B。
输入格式:
输入有多组数据,每组数据占3行,第一行为正整数n,1 < n <1000,表示n阶。第二行为A矩阵的nn个整数,第三行还是nn个整数,为B矩阵(先行后列形式存放)。
输出格式:
按行列形式输出矩阵C。两个矩阵用空行隔开。
输入样例:
在这里给出一组输入。例如:
2
1 2 3 4
3 4 1 2
3
1 2 3 4 5 6 7 8 9
2 1 1 3 2 1 1 2 3
输出样例:
在这里给出相应的输出。例如:
5 8
13 20
11 11 12
29 26 27
47 41 42
#include <stdio.h>
int main()
{
int T;
while(scanf("%d",&T)!=EOF){
int numArr1[1000][1000] = {0};
int numArr2[1000][1000] = {0};
//矩阵A
for(int i = 0; i < T; i++){
for(int j = 0; j < T; j++){
scanf("%d",&numArr1[i][j]);
}
}
//矩阵B
for(int i = 0; i < T; i++){
for(int j = 0; j < T; j++){
scanf("%d",&numArr2[i][j]);
}
}
for(int i = 0; i < T; i++){
int flag = 0;
for(int j = 0; j < T; j++){
int sum = 0;
for(int k = 0; k < T; k++){
sum += numArr1[i][k] * numArr2[k][j];
}
if(flag == 1)
printf(" ");
printf("%d",sum);
flag = 1;
}
flag = 0;
printf("\n");
}
printf("\n");
}
return 0;
}