C语言关于二维数组行列互换的问题

#include<stdio.h>voidmain(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf("array... #include <stdio.h>
void main()

{ int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j]; // 这一步为什么要把两个坐标互换。
}
printf("\n");
}
printf("array b:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}
展开
 我来答
网海1书生
科技发烧友

2018-05-20 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
这两个坐标分别代表行和列,所以“行列互换”实际上就是这两个坐标互换啊。比如第2行第3列换成第3行第2列,不就是b[3][2]=a[2][3]吗?
追问
大神能给我再讲明白点吗。
比如a[i][j]=坐标01=2
b[j][i]=坐标10=2
这样有什么意义。。。
追答
未转换前,二维数组(或者说阵列)的排列是这样的:
1 2 3
4 5 6
即 a[0][0]=1
a[0][1]=2
a[0][2]=3
a[1][0]=4
a[1][1]=5
a[1][2]=6
转换过程如下:
b[0][0]=a[0][0]=1
b[1][0]=a[0][1]=2
b[2][0]=a[0][2]=3
b[0][1]=a[1][0]=4
b[1][1]=a[1][1]=5
b[2][1]=a[1][2]=6
所以这时候b数组如果按行列来排列就是
1 4
2 5
3 6
这样不就是行列互相换过来了吗?
就好比你去电影院看电影,你从第1排第2个座位换到第2排第1个,你还是你,但坐的位置不同了啊,这不正是“行列互换”的意义所在么?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式