酷代码 AI
菜单
服务商

C++ 统计超重石块数量:从输入到输出的完整指南

好的,我们先来分析一下这个问题。 **问题理解:** - 输入一个整数 `n`,代表石块数量。 - 然后输入 `n` 个整数,代表每个石块的重量。 - 需要统计重量 **超过 100** 的石块数量。 - 输出这个数量。 **思路:** 1. 读入 `n`。 2. 循环 `n` 次,每次读入一个重量。 3. 如果重量 `> 100`,计数器加 1。 4. 输出计数器的值。 --- ## 🛡️ 准备工作 确保你有一个 C++ 编译器,比如 `g++` 或 `clang++`。 **安装示例(Linux/macOS):** ```bash # 检查是否安装 g++ g++ --version # 如果没有,安装(Ubuntu/Debian) sudo apt install g++ ``` **Windows 用户** 可以安装 MinGW 或使用 Visual Studio。 --- ## 📝 代码实现 ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; // 读取石块数量 int count = 0; // 计数器,记录需要躲避的石块数量 for (int i = 0; i < n; i++) { int weight; cin >> weight; // 读取每个石块的重量 if (weight > 100) { count++; // 如果重量超过100,计数器加1 } } cout << count << endl; // 输出结果 return 0; } ``` --- ## 🔍 代码解释 1. **`int n; cin >> n;`** 读取石块总数。 2. **`int count = 0;`** 初始化计数器为 0。 3. **`for (int i = 0; i < n; i++)`** 循环 `n` 次,每次读取一个重量。 4. **`if (weight > 100)`** 判断条件:重量 **严格大于** 100(根据题意“超过100”)。 5. **`cout << count << endl;`** 输出最终统计的数量。 --- ## ⚠️ 常见陷阱与注意事项 1. **条件判断**:题目要求“超过100”,即 `weight > 100`,不是 `weight >= 100`。 2. **输入格式**:第二行是 `n` 个整数,用空格隔开,C++ 的 `cin` 会自动按空格分割读取。 3. **数据范围**:题目没有给出重量范围,但一般用 `int` 足够。 4. **效率**:时间复杂度 O(n),空间复杂度 O(1),已经最优。 --- ## 🚀 进阶与扩展 - **如果 n 很大(例如上百万)**:代码仍然高效,因为只做一次线性扫描。 - **如果需要同时记录哪些石块要躲避**:可以用一个数组存储重量超过 100 的石块下标或重量。 - **如果输入可能包含非整数**:需要增加输入验证,但本题明确是整数。 - **安全建议**:对于竞赛或在线判题,不需要检查输入错误;但在生产代码中,应检查 `cin` 是否成功读取。 --- ## 📚 相关学习资源 - [C++ 输入输出(cin/cout)教程](https://www.learncpp.com/cpp-tutorial/basic-input-and-output-cin-and-cout/) - [C++ 条件语句 if](https://en.cppreference.com/w/cpp/language/if) - [在线 C++ 编译器(可测试代码)](https://www.onlinegdb.com/online_c++_compiler) --- ## 💡 开发建议 1. 变量名尽量有意义,比如 `count` 比 `c` 更好理解。 2. 即使题目简单,也要考虑边界情况,比如 `n = 0` 时程序是否正确(这里会输出 0)。 3. 写完代码后,用题目给的样例测试一下。 4. 可以尝试自己增加测试用例,比如所有石块重量都小于等于 100,或者都大于 100。 --- ######[AI写代码神器 | 922点数解答 | 2026-03-27 19:18:00]

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