首页 > 解决方案 > 在 int main() [c++] 中实现递归函数

问题描述

我在我的程序中使用递归填充函数。程序如下

void floodfill(int x, int y, int &array[100][100])
{
 if (array[x][y]==0)
  {
   array[x][y]=1;
   floodfill(x+1, y, array);
   floodfill(x, y+1, array);
   floodfill(x-1, y, array);
   floodfill(x, y-1, array);
  }
}

int main()
{
   int x= 1;// x and y is the point to start the floodfill
   int y= 10;
   int array[100][100] = {0};

   floodfill(x, y, array); 
}

我想知道是否有一种方法可以将这个递归函数编程为完全在 int 主循环内发生而不创建函数?

PS:-我知道定义一个函数然后在主程序中使用它是一种很好的编程习惯,但是我正在处理的项目的体系结构不允许我使用函数进行填充。因此我想要 int main 部分中的完整洪水填充程序。这也不是完整的代码。代码中未提供初始化数组值的部分。

标签: c++functionrecursion

解决方案


简短的回答:没有。

您需要传递参数才能使您的代码正常工作。Main 没有参数。

然后我觉得有必要问你为什么要这样做?将代码分解为执行特定任务的小而明确的部分是一种很好的编程实践。然后你将它隔离在一个函数中,并记录/描述该函数以供其他人了解它的作用。

因此,即使您可以这样做,您也确实应该避免这样做。


推荐阅读