怎么对一个二维数组做遍历,找出里面连续的相同元素

LovePurple 2013-04-05 01:31:25
RT
比如现有如下数组

int s_color[8][8] = {
34, 92, 26, 34, 93, 10, 34, 39,
10, 10, 10, 10, 15, 15, 39, 93,
15, 26, 26, 93, 93, 39, 10, 15,
26, 34, 39, 15, 39, 34, 34, 26,
34, 39, 39, 34, 52, 26, 10, 10,
26, 34, 10, 15, 52, 52, 15, 39,
93, 15, 26, 26, 15, 39, 93, 93,
34, 52, 93, 10, 93, 10, 39, 26
};

我想要找出连续的元素,比如10 10 10 10
求指点。。
...全文
1176 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LovePurple 2013-04-16
  • 打赏
  • 举报
回复
引用 5 楼 zhang20072844 的回复:
就直接判断前后两个是否一样就行了。二维数组实际上也是一维的啊。 比如8*8的数组,for(i=;i<62;++i)比较i和i+1 而i和i+1对应数组二维坐标是哪个呢? i对应的是(i/8, i%8) i+1同理
谢谢。。。
程序员2 2013-04-08
  • 打赏
  • 举报
回复
我在想,给数字涂黑白色: 第i和i+1数字不同,则颜色不同,相同,则颜色相同。 最后连续黑色或者连续白色的,就是连续数字
AndyZhang 2013-04-08
  • 打赏
  • 举报
回复
就直接判断前后两个是否一样就行了。二维数组实际上也是一维的啊。 比如8*8的数组,for(i=;i<62;++i)比较i和i+1 而i和i+1对应数组二维坐标是哪个呢? i对应的是(i/8, i%8) i+1同理
wxsxiaoK 2013-04-05
  • 打赏
  • 举报
回复
你是说上下||前后||斜着数字相同 就算连号?
leizh007 2013-04-05
  • 打赏
  • 举报
回复
写错了,第二个循环是j<n*n
leizh007 2013-04-05
  • 打赏
  • 举报
回复

for(i=0;i<n*n-1;i++)
{
for(j=i;i<n*n;j++)
if(s_color[i/n][i%n]!=s_color[j/n][j%n])
break;
if(j!=i+1)
for(k=i;k<j;k++)
printf("%d ",a[k/n][k%n]);
}

33,009

社区成员

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

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