m0_65234038 2022-04-26 13:06 采纳率: 70%
浏览 1031
已结题

写一个函数将3*3的矩阵转置

img

img


代码是csdn上抄的,可以运行,但是运行为什么是这样的啊?我运行手法有问题吧,请教怎么运行?

  • 写回答

3条回答 默认 最新

  • Code_流苏 C/C++领域优质创作者 2022-04-26 13:55
    关注

    我试了一下,这没啥问题,能正常运行:

    img


    代码:

    #include <stdio.h>
    void trans(int (*s)[3], int x, int y);        //定义转置函数
    int main()
    {
        int a[3][3], *p, i, j;
        for (p=*a, printf("Please enter array: \n"); p<*a+9; scanf("%d", p++));    //输入矩阵元素
        trans(a, 3, 3);                                                          //调用转置函数
        for (i=0; i<3; printf("\n"), i++)                                        //输出矩阵
            for (j=0; j<3; printf("%d ", *(*(a+i)+j++)));
        return 0;
    }
    //转置函数
    void trans(int (*s)[3], int x, int y)
    {
        int i, j, t;
        for (i=0; i<x; i++)
            for (j=0; j<y; i!=j&&i<j ? t=*(*(s+i)+j), *(*(s+i)+j)=*(*(s+j)+i), *(*(s+j)+i)=t, j++ : j++);
    }
    

    如有帮助,还请帮忙点下采纳!感谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 创建了问题 4月26日