酷代码 AI
菜单
服务商

闪点裂隙传送距离排序与去重输出问题的 C++ 实现

```cpp #include <iostream> using namespace std; int n, a[100]; int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; } // 选择排序,从大到小 for (int i = 1; i < n; i++) { for (int j = i + 1; j <= n; j++) { if (a[i] < a[j]) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } } } int sum = 0; cout << a[1] << " "; sum++; for (int i = 2; i <= n; i++) { if (a[i] != a[i - 1]) { cout << a[i] << " "; sum++; } if (sum == 5) { break; } } return 0; } ``` ### 代码解释: 1. **输入部分**:首先读取闪点裂隙的个数 `n`,接着循环读取 `n` 个表示传送距离的整数,并存储在数组 `a` 中。 2. **排序部分**:使用选择排序算法,通过两层嵌套循环将数组 `a` 中的元素从大到小进行排序。外层循环控制当前要确定位置的元素,内层循环用于比较并交换元素位置。 3. **去重并输出部分**:使用变量 `sum` 记录已经输出的不重复元素的个数。先输出第一个元素并将 `sum` 加 1,然后从第二个元素开始遍历数组。如果当前元素和前一个元素不同,则输出该元素并将 `sum` 加 1。当 `sum` 达到 5 时,使用 `break` 语句跳出循环。 ######[AI问答 | 481点数解答 | 2026-04-11 19:13:06]

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