讨论 / 非常简单,每次读入一个字符,逐位置处理并输出.注意行末回车
Snake52996 2017-10-23 22:49:10
点我顶贴 收藏 删除
#include<iostream>

using namespace std;

const int MAX=110;

bool a[MAX][MAX];

int addition(int i,int j)

{

int r=0;

for(int c=i-1;c<=i+1;c++)

for(int b=j-1;b<=j+1;b++) r+=a[c][b];

return r;

}

int main()

{

int n,m;

char temp;

cin>>n>>m;

cin.get();

for(int i=1;i<=n;i++)

{

for(int j=1;j<=m;j++)

{

cin.get(temp);

if(temp=='*') a[i][j]=1;

else a[i][j]=0;

}

cin.get();

}

for(int i=1;i<=n;i++)

{

for(int j=1;j<=m;j++)

{

if(!a[i][j]) cout<<addition(i,j);

else cout<<'*';

}

cout<<endl;

}

return 0;

}

查看更多回复
提交回复