解题思路:
题目大意是说找‘.’ 的周围有多少个‘*’这个周围是八个方向。
注意事项:
注意添加外圈,否则数组越界。
参考代码:
#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 人评分
不知道哪里错了浏览:1146 |
程序员的表白 (C语言代码)浏览:1328 |
Pascal三角 (C语言代码)格式错误浏览:521 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:751 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:886 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:591 |
用筛法求之N内的素数。 (C语言代码)浏览:808 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:262 |
C语言训练-数字母 (C语言代码)浏览:608 |
Cylinder (C语言描述+详细分析)浏览:3266 |