设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
时间: 2023-09-30 07:03:31 浏览: 174
假设每个元素占用的空间大小为S,由于A[0][0]存放在位置644,那么A[0][1]存放在位置644+S,A[0][2]存放在位置644+2S,以此类推,A[2][0]存放在位置644+2×S,A[2][1]存放在位置644+2×S+S=644+3×S,A[2][2]存放在位置676,即644+6×S=676,解得S=5。
因此,A[3][3]存放在位置644+6×S+3×S=644+9×S=644+9×5=689。所以A[3][3]存放在位置689。
相关问题
设有一个二维数组A[m][n],假设A[0][0]存放位置在644,A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放在什么位置?
设每个元素占用的空间大小为S,则A[0][0]存放在位置644,A[2][2]存放在位置676,因此:
A[0][0]的存放位置是:644
A[0][1]的存放位置是:644 + S
A[0][2]的存放位置是:644 + 2S
A[1][0]的存放位置是:644 + 3S
A[1][1]的存放位置是:644 + 4S
A[1][2]的存放位置是:644 + 5S
A[2][0]的存放位置是:644 + 6S
A[2][1]的存放位置是:644 + 7S
A[2][2]的存放位置是:676
由此可得:
644 + 6S = 676
解得 S = 5
因此,A[3][3]的存放位置为:
644 + 9S = 644 + 9 × 5 = 689
因此,A[3][3]存放在位置689。
设有一个二维数组A[m][n],假设A[0][0]存放位置在644,A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放的位置在
708,假设数组元素按行存储,每行占据连续的空间。
解析:
因为每个元素占一个空间,所以A[0][0]和A[2][2]之间相差2个元素,即2个空间。
由于数组是按行存储的,所以A[2][2]所在的行的末尾位置就是A[3][0]所在的位置,即A[3][0]的地址为676+2=678。
同理,A[3][1]的地址为678+1=679,A[3][2]的地址为679+1=680,最终A[3][3]的地址为680+1=681。
但是题目中给出的A[2][2]存放位置在676,实际上应该是A[2][2]所在行的起始位置,也就是A[2][0]的地址,因此A[3][3]的地址应该是676+2+3=681。