入门题解2
2023-03-16 21:45:38
发布于:安徽
289阅读
0回复
0点赞
入门题解,我的代码如下(有点长)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
char s[105][105];
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>s[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int num=0;
if(s[i][j]=='*'){
cout<<"*";
}else{
if(s[i+1][j]=='*'){
num++;
}
if(s[i][j+1]=='*'){
num++;
}
if(s[i-1][j]=='*'){
num++;
}
if(s[i][j-1]=='*'){
num++;
}
if(s[i+1][j+1]=='*'){
num++;
}
if(s[i-1][j-1]=='*'){
num++;
}
if(s[i-1][j+1]=='*'){
num++;
}
if(s[i+1][j-1]=='*'){
num++;
}
cout<<num;
}
}
cout<<endl;
}
return 0;
}
全部评论 1
本来就要很长
#include <iostream> using namespace std; char a [105][105]; int b[105][105]; int x[10] = {-1,-1,-1,0,0,1,1,1}; int y[10] = {-1,0,1,-1,1,-1,0,1}; int main(){ int n , m; cin >> n >> m; for(int i = 1 ;i <= n; i++){ for(int j = 1; j<=m;j++){ cin >> a[i][j]; if(a[i][j] == '*'){ for(int k = 0; k <= 7; k++){ b[i + x[k]][j + y[k]]++; } } } } for(int i = 1; i <= n; i++){ for(int j = 1; j <= m ; j++){ if(a[i][j]=='*')cout << "*"; else cout << b[i][j]; } cout << endl; } return 0; }
2024-07-23 来自 浙江
0
有帮助,赞一个