题目
问题 Q: 矩阵运算
时间限制: 1 Sec 内存限制: 128 MB
提交: 1187 解决: 715
[提交][状态][讨论版]
题目描述
两个m×n矩阵A和B的加,标记为A+B,一样是个m×n矩阵,其内的各元素为A、B相对应元素相加后的值。
设A为 的矩阵,B为 的矩阵,那么称 的矩阵C为矩阵A与B的乘积,记作 ,其中矩阵C中的第 行第 列元素可以表示为A的第i行与B的第j列对应元素乘积和.
输入
测试次数t
每组测试数据格式如下:
矩阵阶数n(0<n<10)
n*n矩阵A
n*n矩阵B
输出
对每组测试数据,输出A+B、AB
样例输入
1
2
1 2
3 4
1 2
3 4
样例输出
2 4
6 8
7 10
15 22
代码块
#include <stdio.h>
int main(void)
{
int t;
scanf("%d", &t);
while(t--)
{
int i, j, k, n;
scanf("%d", &n);
int a[n][n], b[n][n];
for(i=0; i<n; i++)
for(j=0; j<n; j++)
scanf("%d", &a[i][j]);
for(i=0; i<n; i++)
for(j=0; j<n; j++)
scanf("%d", &b[i][j]);
int c[n][n];
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(j!=n-1)
printf("%d ", a[i][j]+b[i][j]);
else
printf("%d\n", a[i][j]+b[i][j]);
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
int temp = 0;
for(k=0; k<n; k++)
temp += a[i][k]*b[k][j];
c[i][j] = temp;
if(j!=n-1)
printf("%d ", c[i][j]);
else
printf("%d\n", c[i][j]);
}
}
}
}