练习8数组中的最大差值 题目描述: 给定一个整数数组arrarr=[10,3,5,6,20],编写一个函数找出数组中任意两个 不同元素之间的最大差值。输出数组中任意两个不同元素之间的最大差值。 c语言
时间: 2024-09-19 15:03:59 浏览: 33
java获取数组中最大差值
在C语言中,你可以通过遍历整个数组,并记录下当前找到的最大值和最小值,然后计算两者之差来解决这个问题。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <limits.h>
int maxDifference(int arr[], int n) {
if (n <= 1) { // 如果数组只有一个元素或者空,最大差值为0
return 0;
}
int min_val = arr[0]; // 初始化最小值为第一个元素
int max_diff = INT_MIN; // 初始化最大差值为负无穷大
for (int i = 1; i < n; i++) {
if (arr[i] < min_val) {
min_val = arr[i];
} else if (arr[i] - min_val > max_diff) {
max_diff = arr[i] - min_val;
}
}
return max_diff;
}
int main() {
int arr[] = {10, 3, 5, 6, 20};
int n = sizeof(arr) / sizeof(arr[0]);
int result = maxDifference(arr, n);
printf("Array中任意两个不同元素的最大差值是: %d\n", result);
return 0;
}
```
这个程序首先检查数组长度是否大于1,如果是,初始化最小值为数组的第一个元素,最大差值为整数最小值。然后遍历数组,对于每个元素,如果它比当前最小值小,就更新最小值;如果它减去最小值大于已知的最大差值,就更新最大差值。最后返回最大的差值。
阅读全文