原本是如果a[n][m]为就直接输出,不为就输出周围*的数量(参考扫雷)。我在程序中对改过程进行了模拟,但个别位置探测显示的雷数会出现变多的现象。
#include <bits/stdc++.h>using namespace std;
int main(){
int n, m; int i; int j;
int sum = 0;
cout << "请输入n和m" << endl;
cin >> n >> m;
char a[n-1][m-1];
for( i = 0; i < n; ++i){
for( j = 0;j < m;++j){
cout << "请输入"<< endl;
cin >> a[i][j]; } }
cout <<"**************************"<<endl;
for( i = 0; i < n; ++i){
for( j = 0;j < m;++j){
if(a[i][j] == '*')
cout <<"*"<< " ";
else{
if(a[i][j+1] == '*' )
++sum;
if(a[i+1][j] == '*' )
++sum;
if(a[i+1][j+1] == '*' )
++sum;
if(a[i-1][j+1] == '*' )
++sum;
if(a[i+1][j-1] == '*' )
++sum;
if(a[i-1][j-1] == '*' )
++sum;
if(a[i][j-1] == '*' )
++sum;
if(a[i-1][j] == '*' ){
++sum;
}
cout << sum <<" ";
sum = 0;
}
}
cout << endl;
} return 0;}"