蒟蒻80分求助
查看原帖
蒟蒻80分求助
491648
法外狂徒_张三楼主2021/8/8 12:08

代码奉上:

#include<bits/stdc++.h>
using namespace std;
int flag[8][8]={{-1,-1},{0,-1},{1,-1},{-1,0},{1,0},{-1,1},{0,1},{1,1}};
int n,m;
char s[10000][10000];
int main()
{
     cin>>n>>m;
	 for(int i=0;i<n;i++)
	 {
	 	for(int j=0;j<m;j++)
	 	{
	 		cin>>s[i][j];
		 }
		 getchar();
	 }
	 for(int i=0;i<n;i++)
	 {
	 	for(int j=0;j<m;j++)
	 	{
	 		if(s[i][j]!='*')
	 		s[i][j]=0;
		 }
	 }
		 for(int i=0;i<n;i++)
	 {
	 	for(int j=0;j<m;j++)
	 	{
	 		if(s[i][j]!='*')
	 		{
	 		    for(int k=0;k<8;k++)
	 		    {
//	 		    	cout<<i+flag[k][0]<<":"<<j+flag[k][1]<<endl;
	 		    	if((i+flag[k][0]>=0&&i+flag[k][0]<=m)&&(j+flag[k][1]>=0&&j+flag[k][1]<=n))
	 		    	if(s[i+flag[k][0]][j+flag[k][1]]=='*')
	 		    	{
                         
	 		    		
	 		    		s[i][j]++;					
						  }
				 }
			 }
		 }
	 }
	 for(int i=0;i<n;i++)
	 {
	 	for(int j=0;j<m;j++)
	 	{
	 		if(s[i][j]!='*')
	 		cout<<char(s[i][j]+'0');
	 		else
	 		cout<<'*';
		 }
		 cout<<endl;
	 }
}

可能有点乱

2021/8/8 12:08
加载中...