Проболжаем тему ламерских вопросов:
#include <iostream>
using namespace std;
int dx[]={0,1,0,-1};
int dy[]={-1,0,1,0};
char m[100][100];
int w,h;
int f()
{
int n=0;
for(int i=0;i<w;i++)
{
for(int j=0;j<h;j++)
{
if(m[i][j]=='*')
{
for(int k=0;k<4;k++)
{
if(i+dx[k]>=0 && i+dx[k]<w && j+dy[k]>=0 && j+dy[k]<h)
m[i+dx[k]][j+dy[k]]='*';
}
}
}
}
for(int i=0;i<w;i++)
{
for(int j=0;j<h;j++)
{
if(m[i][j]=='.') n++;
}
}
return n;
f();
}
void main()
{
int mm=0,xod=0;
cin>>w>>h;
for(int i=0;i<w;i++)
{
for(int j=0;j<h;j++)
{
cin>>m[i][j];
}
}
for(int i=0;i<w;i++)
{
for(int j=0;j<h;j++)
{
if(m[i][j]=='.') mm++;
}
}
while(mm!=0)
{
mm=f();
xod++;
}
cout<<xod;
}
Почему когда "
*" в верхнем и/или левом ряду/столбце прога выдает ''
1" ??