千秋若离 发表于 2021-10-26 15:43:21

二维数组

救救我{:10_266:}
假设有一个Land的二维数组,里面可随机输入1,再输入一个int “size”的变量
如果数组中的某个元素为1,检测它周围的所有格子(考虑边界判断),如果这个元素周围的格子里有1的个数>size,则把这个元素初始化。
例见图片

jhq999 发表于 2021-10-26 15:43:22

本帖最后由 jhq999 于 2021-10-26 16:26 编辑

一个思路
看来得用两个一样大小的二维数组
Land,Land_1={0};
for(i=0;i<8;i++)
{
   for(j=0;j<8;j++)
   {
      if(Land)
      {
         count=0;
         for(k=-1;k<2;k++)//
            {
               for(l=-1;l<2;l++)//周围(i-1,j-1),(i-1,j), (i-1,j+1)
                                    //(i,j-1),   (i,j),    (i,j+1)
                                 //(i+1,j-1),(i+1,j),(i+1,j+1)
               {
                     if(((i+k)>=0)&&((i+k)<=7)&&((j+l)>=0)&&((j+l)<=7))//判断是否在数组范围内
                     {
                            if(Land)count++;
                        }
                     
                  }
             }
             count--;//减去自己
             if(count<size)Land_1=1;
         }
      }
}
Land_1就是答案
页: [1]
查看完整版本: 二维数组