永发信息网

C语言的二维数组问题

答案:6  悬赏:80  手机版
解决时间 2021-04-20 16:31
  • 提问者网友:人傍凄凉立暮秋
  • 2021-04-20 13:37

3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.

(假设a[0][0]位于数组的第一个位置上。)

A.i*m+j B.j*m+i C.i*m+j-1 D.i*m+j+1

那位高手能帮我解释下,尤其是是*号是什么意思?

最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-04-20 14:00
更正:选D,其他说明不变,只是没注意看题目,经♂Ёdīιу提醒才发现

静态声明的二维数组的存储是连续的
比如int a[2][2] = { {1,2}, {3,4} };
那么它在内存里的实际存储其实就是1 2 3 4
这4个空间前后连续

所以定位一个m行n列的二维数组中的某个元素的位置,可以使用线性下标来访问
比如a[i][j]在一个n列的二维数组里的位置就是i*n+j
拿刚才那个例子来看
a[0][0]就是0*2+0 = 0,相当于一维数组的第1个元素
a[1][0]就是1*2+0 = 2,相当于一维数组的第3个元素

所以第i行j列的元素相当于它对应的一维数组里下标为i*n+j的元素,如果第一个元素以位置1来算的话,也就是数组里的第i*n+j+1个位置
全部回答
  • 1楼网友:动情书生
  • 2021-04-20 17:25

基本常识问题,这中基础求人不如求几.买本潭豪强的C书看看,很快能力就上去了.基础是关键

  • 2楼网友:煞尾
  • 2021-04-20 16:51

选D,*只是乘号

假设数组a是这样一个数组a[3][4],也就是三行四列,m就等于4了,里面的数据是这样走的

a0,0->a0,1->a0,2->a0,3->a1,0->a1,1->a1,2->a1,3如此下去,假设你要的是a[1][2]这个数,数组里面排第7,i=1,j=2,所以公式就是i*m+j+1=1x4+2+1,

有假设是a[2][0],排第9,就是2x4+0+1这样咯

  • 3楼网友:神的生死簿
  • 2021-04-20 16:29

i是行数,j是列数 a[i][j]的位置就是i*m+j

  • 4楼网友:春色三分
  • 2021-04-20 15:46

i是行,j是列。。

做这种选择题,最简单的方法就是代入法,

i=0,j=0时,式子=1

有此知选D

  • 5楼网友:酒醒三更
  • 2021-04-20 14:24
*是乘号
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯