二维数组题

maomao90 2010-06-28 08:56:18
2010年湖南农村信用社公考试题(8分)
有一个二维数组A[10][20],按列存放于一个连续的存储地址空间中,A[0][0]的存储地址是200,每个数组元素占一个存储字,A[6][2]的地址是多少?并写出计算过程?

上网查了一下,计算方法有点不一样,所以来这里找高手。
...全文
783 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
healer_kx 2010-06-30
  • 打赏
  • 举报
回复
说实在的,看了半天,我想大家先统一一下什么叫做 按列?

我觉得传统的数组属于“按行”啊。

也就是A[10][20]按列存储,你写成代码的时候,
第一个元素肯定是a[0][0], 但是第二个元素不是a[0][1]了,而是a[1][0]了。

?我这么想对吗?
maomao90 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 52 楼 michael122 的回复:]
按列存储:
200+(10×2+6)×2 = 252(题目说一个元素占一个字,就是2字节)
[/Quote]
终于找对地方了,谢了哈
michael122 2010-06-30
  • 打赏
  • 举报
回复
按列存储:
200+(10×2+6)×2 = 252(题目说一个元素占一个字,就是2字节)
maomao90 2010-06-30
  • 打赏
  • 举报
回复
我把帖子移到这里应该是对了吧
时间一粒 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 mojunbin 的回复:]
按列存储:200+(2*20+6)*1=226
你这个考试题目答案应该是226,考官设题时答案应该也是按照普通的二维数组按列存储算出的:在A(M,N)位宽为D的二维数组中,LOCA(i,j)=A(0,0)+(j*N+i)*D
ps:这个题目我在好多考试试卷做过。
[/Quote]
就是这个了!
肯定是 :200+(2*10+6)*1=226(按列储存)
品茶 2010-06-30
  • 打赏
  • 举报
回复
题目没说一定用C
可是C数组是按行存储的

LZ把这贴发到这里
一定会有争执的。
阿非 2010-06-30
  • 打赏
  • 举报
回复
按我的理解,正常情况下都是

A[0][0]
A[0][1]
A[0][2]
A[0][3]
...
A[1][0]
A[1][1]
A[1][2]
A[1][3]
...

这样存储的

很少

A[0][0]
A[1][0]
A[2][0]
A[3][0]
A[4][0]
A[5][0]
A[6][0]
A[7][0]
A[8][0]
A[9][0]

这样的
maomao90 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 44 楼 sandy945 的回复:]
意思就是

数组首地址+ ((交错数组的第一个[]的当前值-1+1)* 交错数组的第二个[]的长度 + (交错数组的第二个[]的当前值-1+1)) * 每个数组元素占用的存储空间
[/Quote]
那这种是属于按行,还是按列存储的??这个题说是按列
maomao90 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 45 楼 lthyxy 的回复:]
向.NET看齐!
[/Quote]
如何这样说?
liutengfeigo 2010-06-30
  • 打赏
  • 举报
回复
向.NET看齐!
阿非 2010-06-30
  • 打赏
  • 举报
回复
意思就是

数组首地址+ ((交错数组的第一个[]的当前值-1+1)* 交错数组的第二个[]的长度 + (交错数组的第二个[]的当前值-1+1)) * 每个数组元素占用的存储空间
阿非 2010-06-30
  • 打赏
  • 举报
回复
我也解释不了,当时怎么弄出个 (6*10+2)*1

可能当时 看成 A[20][10]了
阿非 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 maomao90 的回复:]
引用 13 楼 sandy945 的回复:
200+(6*10+2)*1
-----------------

就是这个

是这个吗?
还是这个
200+2*10+6 = 226
[/Quote]

晕,那天回答的有些匆忙。200+(6*10+2)*1 不是我的本意,我的本意是 200+(6*20+2)*1

liutengfeigo 2010-06-30
  • 打赏
  • 举报
回复
=200+(6*20+2)*A的类型所占字节数
liutengfeigo 2010-06-30
  • 打赏
  • 举报
回复
=200+(6*20+2)*A的类型
liutengfeigo 2010-06-30
  • 打赏
  • 举报
回复
A的类型*(6*20+2)
maomao90 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 lthyxy 的回复:]
这么冒出个这样的帖子了?
[/Quote]
不得已才把帖子移过来的,按理说这种帖子应该放在哪里合适呀
maomao90 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 zhao4zhong1 的回复:]
好像C语言是按行存储
FORTRAN是按列存储
[/Quote]
如果不考虑语言,题目上说是按列存储,那正确答案应该是多少?
liutengfeigo 2010-06-30
  • 打赏
  • 举报
回复
这么冒出个这样的帖子了?
赵4老师 2010-06-30
  • 打赏
  • 举报
回复
好像C语言是按行存储
FORTRAN是按列存储
加载更多回复(33)

33,010

社区成员

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

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