函数递归 水洼数

#include <stdio.h>
#define M 7
#define N 7

int water_zero(int a[][N],int i,int j)
{
    if(a[i][j]==1)
    {
        a[i][j]=0;
        water_zero(a,i+1,j);
        water_zero(a,i,j+1);
        water_zero(a,i-1,j);
        water_zero(a,i,j-1);
    }
}


int water(int a[][N])
{
    int num = 0;
    for(int i=1;i < M-1;i++)
    {
        for(int j=1;j < N-1;j++)
        {
            if(a[i][j]==1)
            {
                num++;
                water_zero(a,i,j);
            }
        }
    }
    return num;
}


int main()
{
    int a[M][N]={0};
    printf("请输入水洼分布情况\n");
    for(int i=1;i < M-1;i++)
    {
        for(int j=1;j < N-1;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    printf("水洼数为:%d\n",water(a));
    return 0;
}

上一篇:Instance scope


下一篇:Remote desktop to Ubuntu 12.04 from Windows 7