给定一个整数数组 arr arr = [10, 3, 5, 6, 20],编写一个函数找出数组中任意两个不同元素之间的最大差值。输出数组中任意两个不同元素之间的最大差值 用C语言
时间: 2024-09-19 16:10:22 浏览: 51
在 C 语言中,你可以通过遍历整个数组并维护当前找到的最大差值来解决这个问题。这里是一个简单的解决方案:
```c
#include <stdio.h>
#include <limits.h>
// 函数声明
int findMaxDifference(int arr[], int n);
int main() {
int arr[] = {10, 3, 5, 6, 20};
int array_size = sizeof(arr) / sizeof(arr[0]);
int max_diff = findMaxDifference(arr, array_size);
printf("The maximum difference between any two different elements is %d.\n", max_diff);
return 0;
}
// 定义查找最大差值的函数
int findMaxDifference(int arr[], int n) {
if (n <= 1) // 如果数组只有一个元素,没有差值可以计算
return 0;
int min_element = arr[0]; // 初始化最小元素为第一个元素
int max_diff = INT_MIN; // 初始化最大差值为负无穷
for (int i = 1; i < n; i++) {
if (arr[i] < min_element)
min_element = arr[i];
// 计算每个元素与已知最小元素的差值,并更新最大差值
max_diff = MAX(max_diff, arr[i] - min_element);
}
return max_diff;
}
```
这个程序首先检查数组是否只包含一个元素,如果是,则返回0。然后它遍历数组,找到最小元素并计算每个元素与最小元素的差值,每次迭代都会更新最大差值。最后,`findMaxDifference` 函数会返回最大差值。
阅读全文