求解,C语言二维数组的行列转换问题

weixin_41292798 2017-12-27 12:15:33
将一个二维数组a的行和列元素互换,存到另一个二维数组b中,我是这么写的


得出结果后,我又想了一下,如果我把开头定义的a变成a[3][2] = {{1,2},{3,4},{5,6}, b变成b[2][3],这样调换一下行列行不行?我自己试着弄了一下,弄不好......求高手教我怎么弄,能不能弄成这样。
...全文
758 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻夢之葉 2017-12-27
  • 打赏
  • 举报
回复
一样的 行遍历或者列遍历 i, j分别代表行列/列行 复制到另一个数组就是j i进行索引 for(i) for(j) dst[j][i] = src[i][j]; //dst代表目标数组,src代表源数组
paschen 2017-12-27
  • 打赏
  • 举报
回复
引用
这样调换一下行列行不行?
可以啊,你循环变量的取值范围也要根着改
自信男孩 2017-12-27
  • 打赏
  • 举报
回复
#include <stdio.h>

int main(void)
{
    int a[3][2] = {{1, 2}, {3, 4}, {5, 6}}, b[2][3];
    int i, j;

    for (i = 0; i < 3; i++) {
        for (j = 0; j < 2; j++) {
            b[j][i] = a[i][j];
            printf("%d ", a[i][j]);
        }
        putchar(10);
    }

    for (j = 0; j < 2; j++) {
        for (i = 0; i < 3; i++)
            printf("%d ", b[j][i]);
        putchar(10);
    }
    putchar(10);

    return 0;
}
这样没问题呢
1 2 
3 4 
5 6 
1 3 5 
2 4 6
上面是a的输出,下面是b的输出。
真相重于对错 2017-12-27
  • 打赏
  • 举报
回复
结果怎么不对?
weixin_41292798 2017-12-27
  • 打赏
  • 举报
回复

我试了一下,结果还是不对。。。实在不知道哪里出问题了
weixin_41292798 2017-12-27
  • 打赏
  • 举报
回复
[quote=引用 2 楼 jianwen0529 的回复:] 一样的 谢谢
weixin_41292798 2017-12-27
  • 打赏
  • 举报
回复
[quote=引用 1 楼 paschen 的回复:]
引用
这样调换一下行列行不行?
好,谢谢,我待会试试

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧