解题思路:
题目大意是说找‘.’ 的周围有多少个‘*’这个周围是八个方向。
注意事项:
注意添加外圈,否则数组越界。
参考代码:
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
static const int MAX=101;
int n,m;
int main(){
int i,j,c=1;
while(cin>>n>>m&&n&&m){
//添加外圈
int b[MAX][MAX]={0};
char a[n+2][m+2];
memset(a,'.',sizeof(a));
//输入
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(a[i][j]=='.'){
if(a[i-1][j-1]=='*') b[i][j]++;
if(a[i-1][j]=='*') b[i][j]++;
if(a[i-1][j+1]=='*') b[i][j]++;
if(a[i+1][j-1]=='*') b[i][j]++;
if(a[i+1][j]=='*') b[i][j]++;
if(a[i+1][j+1]=='*') b[i][j]++;
if(a[i][j-1]=='*') b[i][j]++;
if(a[i][j+1]=='*') b[i][j]++;
a[i][j]=b[i][j]+'0';
}
else continue;
}
}
cout<<"Field #"<<c<<":"<<endl;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
cout<<a[i][j];
}
cout<<endl;
}
c++;
cout<<endl;
}
}
0.0分
2 人评分
C二级辅导-求偶数和 (C语言代码)浏览:636 |
C语言训练-角谷猜想 (C++代码)(3N+1问题)浏览:1748 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1146 |
星期判断机 (C语言代码)浏览:859 |
Tom数 (C语言代码)浏览:725 |
用筛法求之N内的素数。 (C语言代码)浏览:529 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:2158 |
幸运数 (C++代码)浏览:2860 |
拆分位数 (C语言代码)浏览:441 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:452 |