酷代码 AI
菜单
服务商

C++ 实现问卷调查反馈值排序、去重和统计

以下是使用 C++ 解决该问题的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> int main() { int n; // 读取问卷的数量 std::cin >> n; // 用于存储每份问卷的反馈值 std::vector<int> feedback(n); // 用于统计每个反馈值出现的次数,索引表示反馈值,值表示出现次数 std::vector<int> count(1001, 0); // 读取每份问卷的反馈值 for (int i = 0; i < n; i++) { std::cin >> feedback[i]; // 统计每个反馈值出现的次数 count[feedback[i]]++; } // 标记是否是第一个输出的反馈值 bool first = true; // 遍历 1 到 1000 的每个反馈值 for (int i = 1; i <= 1000; i++) { if (count[i] > 0) { if (!first) { std::cout << " "; } // 输出反馈值和出现的次数 std::cout << i << "(" << count[i] << ")"; first = false; } } std::cout << std::endl; return 0; } ``` ### 代码解释: 1. **输入处理**:首先读取问卷的数量 `n`,然后使用 `vector` 存储每份问卷的反馈值。 2. **统计出现次数**:使用一个长度为 1001 的 `vector` `count` 来统计每个反馈值出现的次数,索引表示反馈值,值表示出现次数。 3. **输出结果**:遍历 1 到 1000 的每个反馈值,如果该反馈值出现次数大于 0,则输出该反馈值和出现的次数。 ### 复杂度分析: - **时间复杂度**:$O(n + 1000)$,其中 $n$ 是问卷的数量。 - **空间复杂度**:$O(1000)$,主要用于存储每个反馈值出现的次数。 ######[AI问答 | 523点数解答 | 2026-05-31 15:38:45]

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