C语言编程题,用指针咋做?

输入一个3*4的整型数组,对其进行转置后输出。

你要的指针,我有注释,你应该看得懂

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int num[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    int *p0=&num[0][0],*p1=&num[2][3],numsave,i,j;
    //数组元素地址连续 指针p0 p1 分别指向一头一尾,循环向中间会和,并交换数值

    while(1)
    {
        numsave=*p0;
        *p0=*p1;
        *p1=numsave;
        p0++;
        p1--;
        if(p1-p0==1)//因为是偶数个元素,所以一头一尾取,最后两指针地址相差1
            break;
    }

    printf("3*4数组\n 1, 2, 3, 4 \n 5, 6, 7, 8\n 9,10,11,12\n倒置后:\n");
    for (i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("%2d ",num[i][j]);
        }
        printf("\n");
    }

}

追问

嗯,感谢你的帮助!

温馨提示:答案为网友推荐,仅供参考