编程计算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之前提示

时间:2024-02-21 07:21:14
编程计算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
    }
}