c++课程实验,请大家帮助。

实现一个3*4的整型矩阵的转置。
要求:矩阵元素终端输入;转置功能另写一个函数实现。
请附带思路,谢谢。

只能定义一个4*3的新矩阵,或者定义一个比较大的横纵值相等的矩阵。然后横纵坐标值进行交换

#include <stdio.h>
int a[50][50];
int M,N;

void trans(int a[50][50],int M,int N)
{
    int i,j,t;
    int k = M;
    if(k<N)
        k = N;
    for(i=0;i<k;i++)
        for(j=0;j<i;j++)
        {
            t = *(*(a+i)+j);
            *(*(a+i)+j)= *(*(a+j)+i);
            *(*(a+j)+i) = t;
        }
}

int main()
{
    scanf("%d%d",&M,&N);
    int i,j;
    for(i=0;i<M;i++)
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);
    trans(a,M,N);
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}