charmmm


私信TA

用户名:1420462013

访问量:3420

签 名:

少年心怀乌托邦,心仍向阳肆生长

等  级
排  名 724
经  验 3744
参赛次数 1
文章发表 10
年  龄 0
在职情况 学生
学  校 Bilibili
专  业

  自我简介:

TA的其他文章

解题思路:这道题如果只在main函数里写,很容易实现,二维数组下标互换即可(i<-->j);也可以用自定义函数实现,二维数组的转置其实就是将二维数组以行序为主序转换为以列序为主序,通俗来讲就是横着读-->竖着读,我们可以将二维数组看作矩阵,以矩阵的阶数为一个增量,“跳着输出”二维数组的元素,从而达到行列互换的效果。


参考代码:

//二维数组的转置其实就是将二维数组以行序为主序转换为以列序为主序

#include<stdio.h>

void tform(int a[]){

    int i,j;

    for(i=0;i<3;i++){

         for(j=i;j<9;j+=3){  //按列序为主序输出,3为矩阵阶数,依次输出1,4,7;2,5,8;3,6,9

            printf("%d ",a[j]);

        }

        printf("\n");

    }

}

int main()

{

    int a[3][3];

    int i,j;

    for(i=0;i<3;i++)//按行序为主序输入

        for(j=0;j<3;j++)

        scanf("%d",&a[i][j]);

    int *p = a[0];

    tform(p);

    return 0;

}

//1 2 3 4 5 6 7 8 9

//0 1 2 3 4 5 6 7 8

//1 4 7

//2 5 8

//3 6 9

 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区