CSP题目100分答案C++ 问题描述:给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式: 输入第一行包含一个整数n。 第二行包含n个正整数,相邻整数之间使用一个空格分隔
时间: 2024-11-18 11:19:30 浏览: 29
这个问题可以使用C++通过排序算法来解决。首先,我们需要读取输入的整数n和n个整数,并将这些数字存储在一个数组中。然后,对这个数组进行排序,最简单的方法可以选择快速排序或者归并排序。最后,由于排序后的数组中相邻元素的差将是最大的,我们可以直接计算数组的第一个元素和最后一个元素(即最大值和最小值)之间的差的绝对值作为结果。
下面是一个简单的C++代码示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int n;
std::cin >> n;
// 创建一个vector来存储输入的整数
std::vector<int> numbers(n);
for (int i = 0; i < n; ++i) {
std::cin >> numbers[i];
}
// 对vector进行排序
std::sort(numbers.begin(), numbers.end());
// 计算并输出最小差值
int min_diff = std::abs(numbers[0] - 1]);
std::cout << "The minimum absolute difference is: " << min_diff << std::endl;
return 0;
}
```
阅读全文