求4*3矩阵和3*4矩阵的乘积,看一下问题出在哪了,算出来全是垃圾值

//求4 * 3矩阵与3 * 4矩阵的乘积
#include
int main (void)
{
int A[4][3];
int B[3][4];
int C[4][4];
int i, j, sum, k, t;

//从键盘读取两个矩阵的元素
puts("请输入矩阵A的元素:");
for (i = 0; i < 4; i ++) {
    for (j = 0; j < 3; j ++) {
        printf("行%d列%d:",i + 1, j + 1);
        scanf("%d", &A[i][j]);
    }
}
puts("请输入矩阵B的元素:");
for (i = 0; i < 3; i ++) {
    for (j = 0; j < 4; j ++) {
        printf("行%d列%d:", i + 1, j + 1);
        scanf("%d", &B[i][j]);
    }
}

//求两矩阵的乘积
for (i = 0; i < 4; i ++) {
    for (j = 0; j < 4; j ++) {
        sum = 0;
        for (k = 0; k < 3; k ++) {
            t = A[i][k] * B[k][j];
            sum += t;
        }
        C[i][j] = sum;
    }
}
//显示两矩阵的乘积
puts("两矩阵的乘积为:");
for (i = 0; i < 4; i ++) {
    for (j = 0; j < 4; j ++) {
        printf("%5d", &C[i][j]);
    }
    printf("\n");
}

return 0;

}

img


输出那里 printf("%5d", &C[i][j]); 改为

printf("%5d", C[i][j]);

你原来那样写输出的是数组元素的地址,不是值。

printf("%5d", C[i][j]); //不要加&符号