c++代码用数组表示一个10x9的二维格子,其中数字9表示雷,0表示非雷,请在非雷单元格里标注周围的雷的数目。 输入 10x9个数字,其中数字9表示雷,0表示非雷 输出 一行10个字符,字符间用一个空格隔开,其中*表示雷,1-8表示周围的雷数,0个雷输出空格。
时间: 2023-09-21 21:08:15 浏览: 83
以下是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n = 10, m = 9;
int a[n][m];
char b[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
if (a[i][j] == 9) {
b[i][j] = '*';
} else {
int cnt = 0;
for (int x = i-1; x <= i+1; x++) {
for (int y = j-1; y <= j+1; y++) {
if (x >= 0 && x < n && y >= 0 && y < m && a[x][y] == 9) {
cnt++;
}
}
}
b[i][j] = cnt == 0 ? ' ' : cnt + '0';
}
cout << b[i][j] << ' ';
}
cout << endl;
}
return 0;
}
```
首先定义一个10行9列的二维数组`a`,用于存储输入的数字,再定义一个10行9列的二维字符数组`b`,用于存储输出的字符。遍历整个数组,对于每个位置,如果是雷,则在`b`数组中标记为`*`;如果不是雷,则遍历该位置周围8个位置,统计雷的数量`cnt`,并将其转化为字符,存入`b`数组中。最后输出`b`数组即可。
阅读全文