鱼C论坛

 找回密码
 立即注册
查看: 1893|回复: 1

[已解决]二维数组

[复制链接]
发表于 2021-10-26 15:43:21 | 显示全部楼层 |阅读模式
20鱼币
救救我
假设有一个Land[8][8]的二维数组,里面可随机输入1,再输入一个int “size”的变量
如果数组中的某个元素为1,检测它周围的所有格子(考虑边界判断),如果这个元素周围的格子里有1的个数>size,则把这个元素初始化。
例见图片
最佳答案
2021-10-26 15:43:22
本帖最后由 jhq999 于 2021-10-26 16:26 编辑

一个思路
  1. 看来得用两个一样大小的二维数组
  2. Land[8][8],Land_1[8][8]={0};
  3. for(i=0;i<8;i++)
  4. {
  5.      for(j=0;j<8;j++)
  6.      {
  7.         if(Land[i][j])
  8.         {
  9.            count=0;
  10.            for(k=-1;k<2;k++)//
  11.             {
  12.                  for(l=-1;l<2;l++)//周围(i-1,j-1),(i-1,j), (i-1,j+1)
  13.                                     //(i,j-1),   (i,j),    (i,j+1)
  14.                                    //(i+1,j-1),(i+1,j),(i+1,j+1)
  15.                  {
  16.                      if(((i+k)>=0)&&((i+k)<=7)&&((j+l)>=0)&&((j+l)<=7))//判断是否在数组范围内
  17.                        {
  18.                             if(Land[i+k][j+l])count++;
  19.                         }
  20.                      
  21.                   }
  22.              }
  23.              count--;//减去自己
  24.              if(count<size)Land_1[i][j]=1;
  25.          }
  26.       }
  27. }
  28. Land_1就是答案
复制代码
微信图片_20211026154145.png

最佳答案

查看完整内容

一个思路
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-26 15:43:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2021-10-26 16:26 编辑

一个思路
  1. 看来得用两个一样大小的二维数组
  2. Land[8][8],Land_1[8][8]={0};
  3. for(i=0;i<8;i++)
  4. {
  5.      for(j=0;j<8;j++)
  6.      {
  7.         if(Land[i][j])
  8.         {
  9.            count=0;
  10.            for(k=-1;k<2;k++)//
  11.             {
  12.                  for(l=-1;l<2;l++)//周围(i-1,j-1),(i-1,j), (i-1,j+1)
  13.                                     //(i,j-1),   (i,j),    (i,j+1)
  14.                                    //(i+1,j-1),(i+1,j),(i+1,j+1)
  15.                  {
  16.                      if(((i+k)>=0)&&((i+k)<=7)&&((j+l)>=0)&&((j+l)<=7))//判断是否在数组范围内
  17.                        {
  18.                             if(Land[i+k][j+l])count++;
  19.                         }
  20.                      
  21.                   }
  22.              }
  23.              count--;//减去自己
  24.              if(count<size)Land_1[i][j]=1;
  25.          }
  26.       }
  27. }
  28. Land_1就是答案
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 23:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表