有没有好心人帮忙交一下
查看原帖
有没有好心人帮忙交一下
933279
Violet5581楼主2024/11/23 00:22
#include<bits/stdc++.h>
using namespace std;
int n,m,ans,tx[8]={-1,-1,-1,0,0,1,1,1},ty[8]={-1,0,1,-1,1,-1,0,1};
char a[105][105];
void dfs(int x,int y)
{
	for(int i=0;i<8;i++)
	{
		int ax=x+tx[i];
		int ay=y+ty[i];
		if(ax>0&&ay>0&&ax<=n&&ay<=m&&a[ax][ay]=='@')
		{
			a[ax][ay]='*';
			dfs(ax,ay); 
		}
	}
	return ;
}
int main()
{
	while(1)
	{
		cin>>n>>m;
		ans=0;
		if(n==0)
		{
			break;
		}
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>a[i][j];
			}
		}
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				if(a[i][j]=='@')
				{
					ans++;
					dfs(i,j);
					a[i][j]='*'; 
				}
			}
		}
		cout<<ans<<"\n";
	}
	return 0;
}
2024/11/23 00:22
加载中...