酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

字符矩阵指定位置周边元素修改的C++实现

```cpp #include <iostream> using namespace std; char a[10][10]; int main() { int n, m, x, y; cin >> n >> m; // 输入字符矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; } } // 输入指定位置 cin >> x >> y; // 手动处理3个方向,判断是否越界,然后修改对应位置的元素 // 注意:如果越界了,就不要修改了,直接跳过 if (x - 1 >= 0) //看一下位置,是否有上一行的元素 { a[x - 1][y] = '0'; } if (x - 1 >= 0 && y - 1 >= 0) //看一下位置,是否有左上的元素 { a[x - 1][y - 1] = '0'; } if (x - 1 >= 0 && y + 1 < m) //看一下位置,是否有右上的元素 { a[x - 1][y + 1] = '0'; } // 输出修改后的矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout << a[i][j]; if (j < m - 1) { cout << " "; } } cout << endl; } return 0; } ``` ### 代码解释: 1. **输入矩阵**:使用两层 `for` 循环读取矩阵的行数 `n` 和列数 `m`,并将矩阵元素存储在二维字符数组 `a` 中。 2. **输入指定位置**:读取指定位置的行列下标 `x` 和 `y`。 3. **处理三个方向**: - **上方元素**:判断 `x - 1` 是否大于等于 0,如果是,则将 `a[x - 1][y]` 设置为 `'0'`。 - **左上方元素**:判断 `x - 1` 是否大于等于 0 且 `y - 1` 是否大于等于 0,如果是,则将 `a[x - 1][y - 1]` 设置为 `'0'`。 - **右上方元素**:判断 `x - 1` 是否大于等于 0 且 `y + 1` 是否小于 `m`,如果是,则将 `a[x - 1][y + 1]` 设置为 `'0'`。 4. **输出矩阵**:使用两层 `for` 循环输出修改后的矩阵,每行元素之间用空格分隔。 ######[AI问答 | 689点数解答 | 2026-05-09 19:12:41]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]