酷代码 AI
菜单
服务商

C++实现数字画布染色操作并输出最终状态

以下是解决该问题的C++代码: ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, m, q; // 输入画布的行数n、列数m和操作次数q cin >> n >> m >> q; // 创建一个n行m列的二维向量canvas,初始值都为0 vector<vector<int>> canvas(n, vector<int>(m, 0)); for (int i = 0; i < q; ++i) { int t, x; // 输入操作类型t和操作位置x cin >> t >> x; if (t == 1) { // 操作1:将第x行的所有格子染成红色(用1表示) for (int j = 0; j < m; ++j) { canvas[x - 1][j] = 1; } } else if (t == 2) { // 操作2:将第x列的所有格子染成蓝色(用2表示) for (int j = 0; j < n; ++j) { canvas[j][x - 1] = 2; } } } // 输出最终画布的状态 for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cout << canvas[i][j]; if (j < m - 1) { cout << " "; } } cout << endl; } return 0; } ``` ### 代码解释: 1. **输入处理**:首先读取画布的行数`n`、列数`m`和操作次数`q`。 2. **初始化画布**:创建一个`n`行`m`列的二维向量`canvas`,并将所有元素初始化为0,表示初始时所有格子都是白色。 3. **操作处理**:循环`q`次,每次读取操作类型`t`和操作位置`x`。如果`t`为1,则将第`x`行的所有格子染成红色(值为1);如果`t`为2,则将第`x`列的所有格子染成蓝色(值为2)。 4. **输出结果**:遍历画布,输出每个格子的颜色,整数之间用一个空格隔开。 ######[AI问答 | 581点数解答 | 2026-04-12 10:13:21]

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