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