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

输入数字绝对值与四舍五入处理代码分析与改进

### 👀代码分析 你提供的代码实现了一个简单的功能:读取 `n` 个数字,对于小于等于 0 的数字,输出其绝对值;对于大于 0 的数字,输出其四舍五入后的结果,每个结果之间用空格分隔。 ### 💡代码改进建议 - **使用 `std::vector` 存储输入**:目前代码没有存储输入的数字,若后续需要对这些数字进行进一步处理不太方便。可以使用 `std::vector` 存储。 - **添加输入验证**:虽然代码目前假设输入合法,但实际应用中可能会有非法输入,可添加一些输入验证代码。 ### 📝改进后的代码 ```cpp #include <iostream> #include <cmath> #include <vector> int main() { int n; std::cout << "请输入数字的个数: "; // 输入验证,确保 n 为正整数 while (!(std::cin >> n) || n <= 0) { std::cin.clear(); std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); std::cout << "输入无效,请输入一个正整数: "; } std::vector<double> numbers(n); std::cout << "请输入 " << n << " 个数字: "; for (int i = 0; i < n; ++i) { // 输入验证,确保输入为有效的数字 while (!(std::cin >> numbers[i])) { std::cin.clear(); std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); std::cout << "输入无效,请输入一个有效的数字: "; } } for (int i = 0; i < n; ++i) { if (numbers[i] <= 0) { std::cout << std::abs(numbers[i]); } else { std::cout << std::round(numbers[i]); } if (i != n - 1) { std::cout << " "; } } std::cout << std::endl; return 0; } ``` ### 代码解释 - **输入验证**:使用 `while` 循环和 `std::cin.clear()`、`std::cin.ignore()` 确保输入为有效的整数和数字。 - **使用 `std::vector`**:存储输入的数字,方便后续可能的处理。 ######[AI问答 | 590点数解答 | 2026-07-18 20:12:47]

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