#include <iostream>
using namespace std;
int main()
{
int n , m , ans = 0;
char a[101][101];
cin >> n;
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
{
cin >> a[i][j];
}
}
cin >> m;
m--;
while(m--)
{
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
{
if (a[i][j] == '@')
{
if (a[i - 1][j] == '.')
{
a[i - 1][j] = '!';
}
if (a[i + 1][j] == '.')
{
a[i + 1][j] = '!';
}
if (a[i][j - 1] == '.')
{
a[i][j - 1] = '!';
}
if (a[i][j + 1] == '.')
{
a[i][j + 1] = '!';
}
}
}
}
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
{
if (a[i][j] == '!')
{
a[1][j] = '@';
}
}
}
}
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
{
if (a[i][j] == '@')
{
ans++;
}
}
}
cout << ans;
return 0;
}
#include <iostream>
using namespace std;
char a[101][101];
int n , m , ans = 0;
int main()
{
cin >> n;
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
{
cin >> a[i][j];
}
}
cin >> m;
m--;
while(m--)
{
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
{
if (a[i][j] == '@')
{
if (a[i - 1][j] == '.')
{
a[i - 1][j] = '!';
}
if (a[i + 1][j] == '.')
{
a[i + 1][j] = '!';
}
if (a[i][j - 1] == '.')
{
a[i][j - 1] = '!';
}
if (a[i][j + 1] == '.')
{
a[i][j + 1] = '!';
}
}
}
}
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
{
if (a[i][j] == '!')
{
a[i][j] = '@';
}
}
}
}
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
{
if (a[i][j] == '@')
{
ans++;
}
}
}
cout << ans;
return 0;
}
问题描述:
主函数外就是全局变量
主函数内就是函数内局部变量
第1段第51行你写错了
a[1][j] = '@';
应该是a[i][j] = '@';