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

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]

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