C语言:输入一个3×4矩阵到二维数组a,一个4×2矩阵到二维数组b,将a×b的结果存储到二维数组c

2025-04-02 18:30:34
推荐回答(2个)
回答1:

#include

void main()
{
int a[3][4], b[4][2], c[3][2] = {0};
int i, j,k,sum;
printf("Please input array a[3][4]\n");
for (i = 0; i < 3; i++)
{
for (j = 0;j < 4; j++)
{
scanf("%d", &a[i][j]);
}
}
printf("Please input array b[4][2]\n");
for (i = 0; i < 4; i++)
{
for (j = 0; j < 2; j++)
{
scanf("%d", &b[i][j]);
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
{
c[i][j] = a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j] + a[i][3] * b[3][j];
printf("%d ", c[i][j]);
}
printf("\n");
}
}
可以自己输入数字

回答2:

void main(){
int i,j,k;
long lSum;
int c[3][2]={0};
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int b[4][2]={{1,2},{3,4},{5,6},{7,8}};
/*嵌套循环计算结果矩阵(m*p)的每个元素*/
for(i=0;i<3;i++)
for(j=0;j<2;j++){
/*按照矩阵乘法的规则计算结果矩阵的i*j元素*/
lSum=0;
for(k=0;k<4;k++)
lSum+=a[i][k]*b[k][j];
c[i][j]=lSum;
printf(" %d",c[i][j]);
}
printf("\n");

}
数字是我随便写的,根据自己要求可以修改数字