悬关求调
查看原帖
悬关求调
1011497
The_fisher楼主2024/4/24 13:56

悬关求调 80pds

#include<bits/stdc++.h>
using namespace std;
char a[100][100];
int dx[8]= {-1,-1,0,1,1,1,0,-1},dy[8]= {0,1,1,1,0,-1,-1,-1};
int sum(int x,int y,int n,int m) {
	int xx,yy,sum=0;
	if(a[x][y]=='*') {
		return 42;
	}
	for(int i=0; i<8; i++) {
		xx=x+dx[i];
		yy=y+dy[i];
		if(xx>=0&&xx<m&&yy>=0&&yy<n) {
			if(a[xx][yy]=='*') {
				sum++;
			}
		}
	}
	return sum;
}
void print(int n) {
	if(n==42) {
		cout<<'*';
	} else {
		cout<<n;
	}
}
int main() {
	int n,m;
	cin>>n>>m;
	for(int i=0; i<n; i++)
		for(int j=0; j<m; j++) {
			cin>>a[i][j];
		}
	for(int i=0; i<n; i++) {
		for(int j=0; j<m; j++) {
			print(sum(i,j,n,m));
		}
		printf("\n");
	}
	return 0;
}
2024/4/24 13:56
加载中...