酷代码 AI
菜单

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

以下是实现该功能的C++代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 读取正整数的个数n cin >> n; int sum = 0; for (int i = 0; i < n; i++) { int num; // 依次读取n个正整数 cin >> num; // 判断当前数是否小于x,如果是则累加到总和中 if (num < 0) { // 输入不符合正整数要求,终止程序 return 1; } if (i == n - 1) { int x; cin >> x; if (x < 0) { // 输入不符合正整数要求,终止程序 return 1; } if (num < x) { sum += num; } } else { cin.ignore(1); // 忽略空格 int nextChar = cin.peek(); if (nextChar == '\n') { // 输入数量不足n个,终止程序 return 1; } if (num < 0) { // 输入不符合正整数要求,终止程序 return 1; } int x; cin >> x; if (x < 0) { // 输入不符合正整数要求,终止程序 return 1; } if (num < x) { sum += num; } } } // 输出小于x的数的总和 cout << sum << endl; return 0; } ``` 代码解释 1. 输入正整数的个数 `n`:使用 `cin` 读取第一行的正整数 `n`,表示后续要输入的正整数的个数。 2. 循环读取 `n` 个正整数:使用 `for` 循环,循环 `n` 次,每次读取一个正整数。 3. 判断是否小于 `x`:在读取每个正整数后,判断该数是否小于 `x`,如果是,则将其累加到总和 `sum` 中。 4. 输出结果:循环结束后,输出小于 `x` 的数的总和 `sum`。 复杂度分析 - 时间复杂度:$O(n)$,其中 $n$ 是正整数的个数。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2026-01-24 22:53:05 | AI问答 | 595点数解答]

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