C语言问题,二维数组?
请问这个要实现什么效果?有人能看明白吗?外教老师讲的,本人初学,属实是没听明白。只听懂有什么循环,二维数组什么的。...
请问这个要实现什么效果?有人能看明白吗?外教老师讲的,本人初学,属实是没听明白。只听懂有什么循环,二维数组什么的。
展开
展开全部
这个虽然是二维数组,但准确的来说是“图”,也就是 Graph model。
首先,这个gm数组里面初始化为0。它的行标(也就是数组的第一个下标)代表顺序,1、2、3……这样的,列标代表字母,元素的值(例如 gm[1]['H'])代表下一步的位置。
先解释一下,比如说老师右上角写了 HELO 之类的,假设他要表示一个单词,那么第一个字母就是 H,第二个字母就是 E,以此类推,那么我们怎么用这个数组表示这一顺序呢?首先我们扫描第0行,也就是 gm[0][i],'A' <= i <= 'Z',这个理解吧,用一个循环依次扫描数组的第二个下标,直到找到了 gm[0]['H']=1,这就代表着我们第一个字母就是 H,下一步就要从第1行开始找,直到找到了 gm[1]['E']=2,表示找到的字母是 E,并且下一次应该从第2行开始找,以此类推,直到遇到了一个负数。这样就把数组里面的内容连接起来了,找到了第一个,就知道了下一步应该从哪里找。
用这样的思路看一下MAIL,在第0行找到了 gm[0]['M']=5,那么第一个字母就是 M,并且下一次从第5行开始找,找到了 g[5]['A']=7……最后遇到了-2,结束。
这就是白板上的主要信息了,因为涉及到图的知识比较复杂我就不多展开了,你可以找一本教材来看。
Copyleft Frank.Xin,20191028-23:12
首先,这个gm数组里面初始化为0。它的行标(也就是数组的第一个下标)代表顺序,1、2、3……这样的,列标代表字母,元素的值(例如 gm[1]['H'])代表下一步的位置。
先解释一下,比如说老师右上角写了 HELO 之类的,假设他要表示一个单词,那么第一个字母就是 H,第二个字母就是 E,以此类推,那么我们怎么用这个数组表示这一顺序呢?首先我们扫描第0行,也就是 gm[0][i],'A' <= i <= 'Z',这个理解吧,用一个循环依次扫描数组的第二个下标,直到找到了 gm[0]['H']=1,这就代表着我们第一个字母就是 H,下一步就要从第1行开始找,直到找到了 gm[1]['E']=2,表示找到的字母是 E,并且下一次应该从第2行开始找,以此类推,直到遇到了一个负数。这样就把数组里面的内容连接起来了,找到了第一个,就知道了下一步应该从哪里找。
用这样的思路看一下MAIL,在第0行找到了 gm[0]['M']=5,那么第一个字母就是 M,并且下一次从第5行开始找,找到了 g[5]['A']=7……最后遇到了-2,结束。
这就是白板上的主要信息了,因为涉及到图的知识比较复杂我就不多展开了,你可以找一本教材来看。
Copyleft Frank.Xin,20191028-23:12
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询