8)编写函数实现两个矩阵的加和乘运算以及矩阵的转置运算。

#include<stdio.h>
void add(inta[3][4],intb[3][4],intc[3][4]);
void translate(inta[3][4],intd[4][3]);
void product(inta[3][4],intd[4][3],inte[3][3]);
int main()
{inta[3][4],b[3][4],i,j,c[3][4],d[4][3],e[3][3];
for(i=0;i<3;i++)for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);add(a,b,c);
translate(a,d);
product(a,d,e);
for(i=0;i<3;i++)for(j=0;j<4;j++)
printf("%3d",c[i][j]);
printf("\n");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
printf("%3d",d[i][j]);
printf("\n");
for(i=0;i<3;i++)for(j=0;j<3;j++)
printf("%8d",e[i][j]);
printf("\n");
return0;}
void add(inta[3][4],intb[3][4],intc[3][4])
{inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}
void translate(inta[3][4],intd[4][3])
{inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
d[i][j]=a[j][i];}
void product(inta[3][4],intd[4][3],inte[3][3])
{inti,j,k=0;
for(i=0;i<3;i++)
for(k=0;k<3;k++)
for(j=0;j<4;j++)
e[i][k]+=a[i][j]*d[j][k];}


#include <stdio.h>
void add(int a[3][4], int b[3][4], int c[3][4]);
void translate(int a[3][4], int d[4][3]);
void product(int a[3][4], int d[4][3], int e[3][3]);
int main()
{
    int a[3][4], b[3][4], i, j, c[3][4], d[4][3], e[3][3];
    for (i = 0; i < 3; i++)
        for (j = 0; j < 4; j++)
            scanf("%d", &a[i][j]);
    for (i = 0; i < 3; i++)
        for (j = 0; j < 4; j++)
            scanf("%d", &b[i][j]);
    add(a, b, c);
    translate(a, d);
    product(a, d, e);
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
            printf("%3d", c[i][j]);
        printf("\n");
    }
    printf("\n");
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 3; j++)
            printf("%3d", d[i][j]);
        printf("\n");
    }
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
            printf("%8d", e[i][j]);
        printf("\n");
    }
    return 0;
}
void add(int a[3][4], int b[3][4], int c[3][4])
{
    int i, j;
    for (i = 0; i < 3; i++)
        for (j = 0; j < 4; j++)
            c[i][j] = a[i][j] + b[i][j];
}
void translate(int a[3][4], int d[4][3])
{
    int i, j;
    for (i = 0; i < 3; i++)
        for (j = 0; j < 4; j++)
            d[j][i] = a[i][j];
}
void product(int a[3][4], int d[4][3], int e[3][3])
{
    int i, j, k;
    int temp;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            temp = 0;
            for (k = 0; k < 4; k++)
            {
                temp += a[i][k] * d[k][j];
            }
            e[i][j] = temp;
        }
    }
}