C++ 统计三个候选人得票数编程题详解
好的,我们一起来完善这个C++程序。根据题目要求,我们需要统计数组 `a` 中数字 1、2、3 各自出现的次数,并依次输出。 以下是完整、规范的代码实现: ```cpp #include <iostream> using namespace std; int a[100001]; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; } int sum1 = 0, sum2 = 0, sum3 = 0; // 分别统计1号、2号、3号的票数 for (int i = 1; i <= n; i++) { if (a[i] == 1) { sum1++; } else if (a[i] == 2) { sum2++; } else if (a[i] == 3) { sum3++; } } cout << sum1 << " " << sum2 << " " << sum3 << endl; return 0; } ``` ## 📌 代码说明 - **数组定义**:`int a[100001]` 用于存储投票数据,大小根据题目 `n <= 100000` 设置。 - **输入**:第一行读取 `n`,第二行读取 `n` 个整数存入数组 `a[1]` 到 `a[n]`。 - **统计逻辑**:使用一个 `for` 循环遍历数组,用 `if-else if` 判断当前元素是 1、2 还是 3,并分别累加到对应的计数器。 - **输出**:按顺序输出 `sum1`、`sum2`、`sum3`,中间用空格分隔。 ## 🧠 开发建议 1. **变量初始化**:建议在声明 `sum1`、`sum2`、`sum3` 时直接初始化为 0,避免未定义行为。 2. **数组索引习惯**:题目或示例中数组下标从 1 开始,但 C/C++ 实际下标从 0 开始更常见。如果从 0 开始,循环条件应为 `i = 0; i < n`,对应读取和统计逻辑需做调整(`a[i] == 1` 逻辑不变,因为只关心值)。 3. **边界检查**:虽然题目输入保证为 1、2、3,但实际开发中可添加 `else` 分支处理非法投票(如输出提示或忽略)。 4. **扩展性**:如果候选人数较多(如 10 个),建议使用数组 `count[4]` 或 `count[K+1]` 来统计,避免硬编码多个变量。 --- ######[AI写代码神器 | 619点数解答 | 2026-06-07 13:47:56]
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)272
- Python 编程:开启无限可能的编程之旅!(阿里通义 | 19点数解答 | 2023-12-07 16:15:34)368
- C++实现单门课程成绩管理系统:教师学生双身份操作全解析(GPT | 6361点数解答 | 2024-05-24 02:01:02)591
- 边长为3、4、5的三角形面积求解:用海伦公式算出结果为6! (字节豆包 | 155点数解答 | 2024-10-15 16:41:01)425
- C++实现含权限保护的二级文件系统:从设计到代码全解析 (阿里通义 | 1602点数解答 | 2024-10-28 14:42:23)300
- C语言实现:通过指针传递二维数组查找3名同学5门课的最高分及位置(字节豆包 | 393点数解答 | 2024-12-13 23:14:35)399
- C++ 实现:统计给定范围 [I, R] 内数字 7 出现的次数(DeepSeek | 437点数解答 | 2025-06-20 16:58:16)259
- Python代码实现:绘制洁白无瑕水晶玫瑰,附示例代码与注意事项(字节豆包 | 447点数解答 | 2025-11-02 14:37:54)113
- 用 C++ 输出爱心图案表达对 C++ 学习的热爱(字节豆包 | 345点数解答 | 2026-04-04 21:20:06)40
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)393
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)415
- Python 实现:精确统计两数范围内素数个数,附完整代码与优化思路(阿里通义 | 292点数解答 | 2024-11-28 21:36:29)276