C++ 代码:计算宝石能量平均值及输入验证改进方案
这段 C++ 代码的功能是计算用户输入的多个宝石能量值的平均值。下面是对代码的详细分析: 代码功能 1. 从用户处获取宝石的数量。 2. 依次获取每个宝石的能量值,并累加这些能量值。 3. 计算所有宝石能量值的平均值。 4. 输出计算得到的能量平均值。 代码逐行解释 ```cpp #include <iostream> // 引入输入输出流库,用于从标准输入读取数据和向标准输出写入数据 using namespace std; // 使用标准命名空间,这样在使用标准库中的类和函数时可以省略 std:: 前缀 int main() { int n; // 定义一个整数变量 n,用于存储宝石的数量 // 输入宝石的数量 cin >> n; // 从标准输入读取一个整数,并将其赋值给变量 n int totalEnergy = 0; // 定义一个整数变量 totalEnergy,用于存储所有宝石的能量总和,初始值为 0 for (int i = 0; i < n; i++) { // 循环 n 次,每次循环处理一个宝石的能量值 int energy; // 定义一个整数变量 energy,用于存储当前宝石的能量值 // 输入每个宝石的能量值 cin >> energy; // 从标准输入读取一个整数,并将其赋值给变量 energy // 累加能量值 totalEnergy = totalEnergy + energy; // 将当前宝石的能量值累加到 totalEnergy 中 } // 计算能量平均值 double averageEnergy = static_cast<double>(totalEnergy) / n; // 将 totalEnergy 强制转换为 double 类型,然后除以宝石的数量 n,得到能量平均值,并将结果存储在 double 类型的变量 averageEnergy 中 // 输出能量平均值 cout << averageEnergy << endl; // 将能量平均值输出到标准输出,并换行 return 0; // 程序正常结束,返回 0 } ``` 复杂度分析 - 时间复杂度:$O(n)$,其中 $n$ 是宝石的数量。因为需要遍历每个宝石一次。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 可能的改进 - 可以添加输入验证,确保用户输入的宝石数量和能量值是有效的(例如,宝石数量不能为负数)。 - 可以添加异常处理,处理输入错误的情况,提高程序的健壮性。 以下是添加输入验证的改进代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 输入宝石的数量 while (true) { cin >> n; if (n > 0) { break; } cout << "宝石数量必须为正整数,请重新输入: "; } int totalEnergy = 0; for (int i = 0; i < n; i++) { int energy; // 输入每个宝石的能量值 while (true) { cin >> energy; if (energy >= 0) { break; } cout << "宝石能量值不能为负数,请重新输入: "; } // 累加能量值 totalEnergy = totalEnergy + energy; } // 计算能量平均值 double averageEnergy = static_cast<double>(totalEnergy) / n; // 输出能量平均值 cout << averageEnergy << endl; return 0; } ``` 这个改进后的代码会验证用户输入的宝石数量和能量值是否有效,如果无效会提示用户重新输入。 ######[AI问答 | 857点数解答 | 2025-12-13 19:27:53]
- 工程师必备:十大APP性能优化方案大揭秘(百度文心 | 300点数解答 | 2023-11-09 18:31:04)338
- 含不规则缺陷原材料的最优切割方案建模与损失率、利用率计算(DeepSeek | 2367点数解答 | 2025-05-10 23:47:30)266
- Python 轻松实现 4 个整数和与平均值的计算及精确输出(DeepSeek | 144点数解答 | 2025-02-22 17:51:29)161
- 用C++计算护盾防御力值低于平均值的护盾个数(字节豆包 | 256点数解答 | 2026-03-28 20:16:19)9
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)80
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)34
- Python程序:验证20亿内偶数分解为最小素数对,证实哥德巴赫猜想!(阿里通义 | 667点数解答 | 2024-11-11 19:20:44)455
- 20亿内偶数素数分解验证:揭秘哥德巴赫猜想程序设计(字节豆包 | 18点数解答 | 2024-11-13 20:44:46)352
- Python 程序验证 20 亿内偶数:哥德巴赫猜想素数分解求解(字节豆包 | 210点数解答 | 2024-11-15 00:26:05)458
- C语言实战:验证20亿内偶数的哥德巴赫猜想分解(字节豆包 | 206点数解答 | 2024-11-15 00:27:23)243
- 验证 bob 修改文件并添加《沁园春·雪》内容的实现方法及开发建议(字节豆包 | 1205点数解答 | 2026-03-20 17:26:32)22
- Linux 系统用户、组及文件操作全流程实践(字节豆包 | 1142点数解答 | 2026-03-20 17:29:38)28