给定一个整形数组,返回排序后的相邻两数的最大差值,用c语言写
时间: 2024-10-23 19:21:38 浏览: 54
在C语言中,你可以通过遍历数组并维护两个指针,一个指向当前元素,另一个指向下一个未处理的元素,来计算给定整型数组排序后的相邻两数的最大差值。以下是一个简单的示例代码:
```c
#include <stdio.h>
int maxAdjacentDifference(int arr[], int n) {
if (n <= 1) {
return 0; // 如果数组只有一个元素或为空,最大差值为0
}
int *min_ptr = &arr[0];
int min_val = arr[0];
int max_diff = 0;
for (int i = 1; i < n; i++) {
if (arr[i] < min_val) {
min_ptr = &arr[i];
min_val = arr[i]; // 更新最小值
}
max_diff = std::max(max_diff, arr[i] - *min_ptr); // 计算最大差值
}
return max_diff;
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int result = maxAdjacentDifference(arr, n);
printf("Sorted adjacent numbers' maximum difference is: %d\n", result);
return 0;
}
```
这个函数首先初始化`min_ptr`和`min_val`,然后遍历数组,每次遇到更小的数值就更新它们。同时,它也在比较每个元素与当前最小值时更新最大差值。最后返回找到的最大差值。
阅读全文
相关推荐




















