输入数字绝对值与四舍五入处理代码分析与改进
### 👀代码分析 你提供的代码实现了一个简单的功能:读取 `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]
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)130
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)145
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)167
- Python 实现:计算区间 n 到 m 中数字 x 出现的次数(字节豆包 | 322点数解答 | 2025-12-13 21:37:08)154
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)383
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)395
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)362
- Python实现数字是否为3的倍数判断及输出(字节豆包 | 508点数解答 | 2026-05-31 14:10:46)72
- C++实现数字倍数判断及输出(字节豆包 | 741点数解答 | 2026-05-31 14:11:48)54
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)549
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)337
- Python 代码转 C++:计算花朵鲜艳值总和(字节豆包 | 408点数解答 | 2026-04-19 21:50:57)64