关于二维数组的问题

wangzeba 2001-12-19 04:42:29
二维数组M[i][j],行下标i的范围从0到4,列下标j的范围从0到5。
M按行存储时元素M[3][5]的起始地址与M按列存储时的什么元素的地址相同???
(请说明原因) Thanks!!!
...全文
67 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Linux2001 2001-12-20
  • 打赏
  • 举报
回复
同意
grit 2001-12-19
  • 打赏
  • 举报
回复
如果问地址相同的话,按行存储时元素M[3][5]的起始地址应是第18个元素,按列存储时
,5*3+3=18,M[3][4],哎楼上是对的
wanbaocheng 2001-12-19
  • 打赏
  • 举报
回复
对m行n列的矩阵(从0记数):
若按行存储,M[i][j]应在第n*i+j位置;
若按列存储,M[i][j]应在第m*j+i位置。
由此,对于按行存储的M[i][j],他应与M[i1][j1]的存储位置相同,其中
if((n*i+j)%m!=0)
{
j1 = [(n*i+j)/m];
i1 = (n*i+j)-m*j1;
}
else
{
j1=(n*i+j)/m-1;
i1=m-1;
}
这里 [ r ] 表示对实数r向下求整,例如[3.5]=3,[2]=2等。

据此,你的问题的答案应为M[3][4]。
wanbaocheng 2001-12-19
  • 打赏
  • 举报
回复
应该是M[3][4]这个元素与它的地址相同

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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