编程计算2×3阶矩阵A和3×2阶矩阵B之积C。矩阵相乘的基本方法是:矩阵A的第i行的所有元素同矩阵B第j列的所有元素对应相乘,并把相乘的结果相加,最终得到的值就是矩阵C的第i行第j列的值。
要求:
(1)从键盘分别输入矩阵A和B的元素,输出乘积矩阵C的元素
(2) **输入提示信息为:
输入矩阵A之前提示:“Input 23 matrix a:\n"
输入矩阵B之前提示:"Input 32 matrix b:\n”
**输入矩阵中每个值的格式为:"%d"
**输出格式为:
输出矩阵C之前提示:“Results:\n”
输出矩阵C中每个值的格式:"%6d"
输出矩阵C各行结束时换行
例如:
Input 23 matrix a:
1 2 3
0 1 2
Input 32 matrix b:
1 -2
2 3
1 3
Results:
8 13
4 9
注:不允许使用goto语句
#include <stdio.h>
#define X 2
#define Y 3
main()
{
int a[X][Y], b[Y][X], c[X][X], i, j, k;
printf("Input 2*3 matrix a:\n");
for (i = 0; i < X ; i++)
{
for (j = 0; j < Y; j++)
{
scanf("%d", &a[i][j]);
}
}
printf("Input 3*2 matrix b:\n");
for (i = 0; i < Y; i++)
{
for (j = 0; j < X; j++)
{
scanf("%d", &b[i][j]);
}
}
for (i = 0; i < X; i++)
{
for (j = 0; j < X; j++)
{
c[i][j] = 0 ;
for (k = 0; k < Y; k++)
{
c[i][j] = c[i][j] + a[i][k] * b[k][j] ;
}
}
}
printf("Results:\n");
for (i = 0; i < X; i++)
{
for (j = 0; j < X; j++)
{
printf("%6d", c[i][j]);
}
printf("\n") ;
}
}