检查了很多遍,但只有3个AC,其他全RE 求大佬帮看看!
#include <iostream>
using namespace std;
int main()
{
// 开辟数组
int n = 0, m = 0;
cin >> n >> m;
int* x = new int[n];
int* y = new int[m];
char** ch = new char* [n];
int** in = new int* [n];
for (int i = 0; i < n; i++)
{
ch[i] = new char[m];
in[i] = new int[m];
}
// 接收数据
int size = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> ch[i][j];
if (ch[i][j] == '*')
{
x[size] = i;
y[size] = j;
size++;
}
in[i][j] = 0;
}
}
//处理
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (ch[i][j] == '*')
{
for (int dx = -1; dx <= 1; dx++)
{
for (int dy = -1; dy <= 1; dy++)
{
int ni = i + dx;
int nj = j + dy;
if (ni >= 0 && ni < n && nj >= 0 && nj < m)
{
in[ni][nj]++;
}
}
}
}
}
}
//输出
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (ch[i][j] != '*')
{
cout<<in[i][j];
}
else
{
cout << '*';
}
}
cout << endl;
}
// 释放内存
for (int i = 0; i < n; i++)
{
delete[] ch[i];
delete[] in[i];
}
delete[] ch;
delete[] in;
delete[] x;
delete[] y;
return 0;
}