c语言找出警数数组 A[n]中的最大值和最小值。
时间: 2024-09-24 10:03:53 浏览: 35
从个数中找出其中最大数和最小数程序。-数据结构c语言版
在C语言中,找出数组A[n]中的最大值和最小值可以采用遍历数组的方式来实现。这里提供一种简单的双指针方法:
```c
#include <stdio.h>
void findMinMax(int A[], int n, int *min, int *max) {
if (n == 0) {
// 如果数组为空,初始化min和max为无穷大
*min = INT_MAX;
*max = INT_MIN;
} else {
// 初始设置 min 和 max 分别为第一个元素
*min = A[0];
*max = A[0];
// 使用两个指针 i 和 j,i 用于寻找最小值,j 用于寻找最大值
int i = 1, j = 1;
while (i < n && j < n) {
if (A[i] < *min) {
*min = A[i]; // 更新最小值
}
if (A[j] > *max) {
*max = A[j]; // 更新最大值
}
// 指向下一个元素,如果当前元素较小,则移动 i 指针;反之则移动 j 指针
if (A[i] <= A[j]) {
i++;
} else {
j++;
}
}
}
}
int main() {
int A[] = {5, 2, 9, 1, 7};
int n = sizeof(A) / sizeof(A[0]);
int min, max;
findMinMax(A, n, &min, &max);
printf("Array A 的最小值是 %d,最大值是 %d\n", min, max);
return 0;
}
```
在这个程序中,`findMinMax`函数接受一个整型数组、数组长度以及指向最小值和最大值的指针。它首先检查数组是否为空,然后通过两个指针同时遍历数组,更新最小值和最大值。当遇到更小或更大的元素时,指针会相应地移动。
阅读全文