酷代码 AI
菜单
服务商

C++实现智能仓库货架库存整理功能

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> #include <vector> using namespace std; // 整理货架函数 vector<vector<int>> organizeShelf(vector<vector<int>>& shelf) { int m = shelf.size(); int n = shelf[0].size(); vector<int> nonZeroItems; // 收集所有非零库存 for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (shelf[i][j] != 0) { nonZeroItems.push_back(shelf[i][j]); } } } // 填充非零库存到货架靠前位置 vector<vector<int>> organizedShelf(m, vector<int>(n, 0)); int index = 0; for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (index < nonZeroItems.size()) { organizedShelf[i][j] = nonZeroItems[index]; index++; } } } return organizedShelf; } // 打印矩阵函数 void printMatrix(const vector<vector<int>>& matrix) { int m = matrix.size(); int n = matrix[0].size(); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { cout << matrix[i][j]; if (j < n - 1) { cout << " "; } } cout << endl; } } int main() { int m, n; cout << "请输入货架的行数 m 和列数 n: "; cin >> m >> n; vector<vector<int>> shelf(m, vector<int>(n)); cout << "请输入货架每个货位的库存:" << endl; for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { cin >> shelf[i][j]; } } vector<vector<int>> organizedShelf = organizeShelf(shelf); cout << "整理后的库存矩阵为:" << endl; printMatrix(organizedShelf); return 0; } ``` ### 代码解释: 1. **`organizeShelf` 函数**: - 首先遍历原始货架矩阵,将所有非零库存收集到 `nonZeroItems` 向量中。 - 然后创建一个新的矩阵 `organizedShelf`,初始值都为 0。 - 接着将 `nonZeroItems` 中的元素按顺序填充到 `organizedShelf` 中靠前的位置。 2. **`printMatrix` 函数**: - 用于打印矩阵,方便输出整理后的结果。 3. **`main` 函数**: - 读取用户输入的货架行数 `m` 和列数 `n`。 - 读取每个货位的库存,存储在 `shelf` 矩阵中。 - 调用 `organizeShelf` 函数进行整理,得到整理后的矩阵 `organizedShelf`。 - 调用 `printMatrix` 函数输出整理后的矩阵。 ######[AI问答 | 812点数解答 | 2026-03-08 10:41:12]

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