输入格式:
输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。
输出格式:
若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵AB,否则输出Error: Ca != Rb
,其中Ca
是A的列数,Rb
是B的行数。文章来源:https://www.toymoban.com/news/detail-517811.html
输入样例1:
2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8
输出样例1:
2 4
20 22 24 16
53 58 63 28
输入样例2:
3 2
38 26
43 -5
0 17
3 2
-11 57
99 68
81 72
输出样例2:
Error: 2 != 3
#include<stdio.h>
int main()
{
//定义所需的变量及数组1
int n1=0,m1=0;
int arr1[100][100]={0};
scanf("%d%d",&n1,&m1);
for(int i=0;i<n1;i++)
{
for(int j=0;j<m1;j++)
{
scanf("%d",&arr1[i][j]);
}
}
//定义第二个变量与数组2
int n2=0,m2=0;
scanf("%d%d",&n2,&m2);
int arr2[100][100]={0};
for(int i=0;i<n2;i++)
{
for(int j=0;j<m2;j++)
{
scanf("%d",&arr2[i][j]);
}
}
//判断是否能计算
int arr3[100][100]={0};
if(n2!=m1)
{
printf("Error: %d != %d",m1,n2);
}
else//此处进行计算
{
for(int i=0;i<n1;i++)
{
for(int j=0;j<m2;j++)
{
for(int k=0;k<m1;k++)
{
arr3[i][j]+=arr1[i][k]*arr2[k][j];//找到规律
}
}
}
//输出
printf("%d %d\n",n1,m2);
for(int i=0;i<n1;i++)
{
for(int j=0;j<m2;j++)
{
if(j!=m2-1)
{
printf("%d ",arr3[i][j]);
}
else
{
printf("%d",arr3[i][j]);
}
}
printf("\n");
}
}
return 0;
}
文章来源地址https://www.toymoban.com/news/detail-517811.html
到了这里,关于给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有R a 行、C a 列,B有R b 行、C b 列,则只有C a的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!