题目描述: 给定一个整数数组 arr arr = [10, 3, 5, 6, 20],编写一个函数找出数组中任意两个不同元素之间的最大差值。输出数组中任意两个不同元素之间的最大差值。请用C89编译
时间: 2024-09-19 15:18:10 浏览: 58
题目要求找到整数数组`arr`中任意两个不同元素的最大差值。你可以通过遍历数组,记录当前最大值和最小值,然后计算它们的差得到最大差值。以下是使用C89编译器实现的一个简单示例:
```c
#include <stdio.h>
#define MAX_SIZE 100 // 假设数组不会超过这个大小
int maxDiff(int arr[], int n) {
if (n <= 1) {
return 0; // 如果数组只有一个元素,最大差值为0
}
int min_val = arr[0];
int max_diff = arr[0] - arr[1]; // 初始化最大差值为第一个元素与其他的第一个元素之差
for (int i = 1; i < n; i++) {
if (arr[i] < min_val) {
min_val = arr[i];
} else if (arr[i] - min_val;
}
}
return max_diff;
}
int main() {
int arr[] = {10, 3, 5, 6, 20};
int size = sizeof(arr) / sizeof(arr[0]);
int result = maxDiff(arr, size);
printf("任意两个不同元素之间的最大差值为: %d\n", result);
return 0;
}
```
在这个程序中,`maxDiff` 函数接收数组和它的长度作为输入,然后返回最大差值。`main`函数创建了一个示例数组,并调用`maxDiff`来计算结果。
阅读全文