酷代码 AI
菜单

用c++语言题目描述 给定 n n 个正整数,再给定一个正整数 x x,请你编写程序,计算 n n 个正整数中,小于 x x 的数的总和是多少? !!!注意输入顺序!!! 输入格式 共三行, 第一行为一个正整数 n n,表示正整数的个数, 第二行依次为 n n 个正整数,数之间以一个空格间隔, 第三行为一个正整数 x x 。 输出格式 输出一个正整数,即 n n 个数中小于 x x 的数的和。

```cpp #include <iostream> int main() { int n; // 读取正整数的个数 n std::cin >> n; int sum = 0; for (int i = 0; i < n; ++i) { int num; // 依次读取 n 个正整数 std::cin >> num; // 判断当前数是否小于 x,如果是则累加到总和中 if (num < 0) { std::cerr << "输入的数应该为正整数,请检查输入。" << std::endl; return 1; } } int x; // 读取正整数 x std::cin >> x; // 重置输入流,重新读取 n 个正整数进行判断 std::cin.clear(); std::cin.seekg(0, std::ios::beg); std::cin >> n; for (int i = 0; i < n; ++i) { int num; std::cin >> num; if (num < x) { sum += num; } } // 输出小于 x 的数的总和 std::cout << sum << std::endl; return 0; } ``` 代码解释: 1. 输入正整数的个数 `n`:使用 `std::cin` 读取第一行输入的正整数 `n`,它代表后续要输入的正整数的数量。 2. 读取并检查 `n` 个正整数:使用 `for` 循环 `n` 次,每次读取一个正整数。检查输入的数是否为正整数,如果不是则输出错误信息并终止程序。 3. 读取正整数 `x`:使用 `std::cin` 读取第三行输入的正整数 `x`,用于后续的比较。 4. 重新读取 `n` 个正整数并计算总和:重置输入流,重新读取 `n` 个正整数,对于每个数,判断其是否小于 `x`,如果是则累加到 `sum` 中。 5. 输出结果:最后输出小于 `x` 的数的总和。 复杂度分析: - 时间复杂度:$O(n)$,因为需要遍历 `n` 个正整数一次。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2026-01-24 23:00:47 | AI问答 | 567点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多