C++水域大小问题,调试发现find_others()函数不能发挥作用,麻烦大家解答一下,谢谢

#include<iostream>
using namespace std;
#define max 9999

void find_others(int land[4][4], int i, int j,int count)
{   //设置出口,超出边界
    if (i<0 || j<0 || i>=4 || j>=4 || land[i][j]!=0)    
        return;
    
    count++;
    land[i][j] = 1; //标记已经遍历的水域
 
    find_others(land, i-1, j , count);//八个方向搜索
    find_others(land, i+1, j , count);
    find_others(land, i,  j-1, count);
    find_others(land, i,  j+1, count);
    find_others(land, i-1,j-1, count);
    find_others(land, i-1,j+1, count);
    find_others(land, i+1,j-1, count);
    find_others(land, i+1,j+1, count);
 
}

void insertsort(int pond[10])//插入排序
{
    for (int i = 1; i < 4; i++)
    {
        int insert_num = pond[i], j;
        for (j = i - 1; j >= 0; j--)
        {
            if (pond[j] > insert_num)
                pond[j + 1] = pond[j];
            else
                break;
        }
        pond[j + 1] = insert_num;
    }
}

int main()
{
    cout<<"池塘大小&个数"<<endl;
    cout<<"请输入16个水域的大小:";
    int land[4][4];
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            cin>>land[i][j];
        }
    }
    cout<<"水域大小如下所示:"<<endl;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            cout<<land[i][j]<<" ";
        }
        cout<<endl;
    }
    int pond[10]={max,max,max,max,max,max,max,max,max,max};
    int k=0;//记录池塘的个数
     for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            if(land[i][j]==0)
            {
                int count=0;
                find_others(land,i,j,count);//这句话发挥不了作用
                pond[k]=count;
                k++;
            }
        }
    }
    insertsort(pond);
    cout<<"池塘的大小为:";
    for(int i=0;i<4;i++)
    {
        if(pond[i]==max)
        {
            continue;
        }
        cout<<pond[i]<<" ";
    }    
    return 0;
}

void find_others(int land[4][4], int i, int j,int count)

改成

void find_others(int land[4][4], int i, int j,int &count)

用引用类型才能起到参数作为返回值效果。值参不能实现此功能。另外用指针也可以

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632