输出一个整数数列中不与最大数相同的数字之和。 输入 输入分为两行: 第一行为 � ( � N(N 为接下来数的个数, � ≤ 100 N≤100); 第二行为 � N 个整数,数与数之间以一个空格分开,每个整数的范围是 − 1 , 000 , 000 −1,000,000 到 1 , 000 , 000 1,000,000。 输出 输出为 � N 个数中除去最大数其余数字之和。c++代码(简洁)
时间: 2024-01-18 18:01:50 浏览: 114
好的,这是一个简单的算法问题。我可以为你提供一个 C++ 的解决方案:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int n;
std::cin >> n;
std::vector<int> nums(n);
for (int i = 0; i < n; i++) {
std::cin >> nums[i];
}
int max_num = *std::max_element(nums.begin(), nums.end());
int sum_except_max = 0;
for (int i = 0; i < n; i++) {
if (nums[i] != max_num) {
sum_except_max += nums[i];
}
}
std::cout << sum_except_max << std::endl;
return 0;
}
```
解释一下这段代码的思路:
首先,我们读入了一个整数 n,表示接下来有 n 个数。然后,我们使用一个 vector nums 存储这 n 个数。接下来,我们使用 `max_element()` 函数找出 nums 中的最大值,并将其存储在变量 max_num 中。然后,我们遍历 nums 中的每个元素,如果它和最大值不相等,就将其加入到 sum_except_max 中。最后,我们输出 sum_except_max。
希望这可以帮助你解决问题!
阅读全文