找出警数数组 A[n]中的最大值和最小值。用c语言回答
时间: 2024-09-23 18:05:05 浏览: 31
在C语言中,找出数组A[n]中的最大值和最小值可以使用遍历数组的方式来实现。这里提供一种简单的线性时间复杂度O(n)的方法:
```c
#include <stdio.h>
void findMaxMin(int arr[], int n, int* maxVal, int* minVal) {
*maxVal = arr[0]; // 初始设置最大值为第一个元素
*minVal = arr[0]; // 初始设置最小值为第一个元素
for (int i = 1; i < n; i++) { // 遍历数组从第二个元素开始
if (arr[i] > *maxVal) { // 如果当前元素大于已知的最大值
*maxVal = arr[i]; // 更新最大值
}
if (arr[i] < *minVal) { // 如果当前元素小于已知的最小值
*minVal = arr[i]; // 更新最小值
}
}
}
int main() {
int A[] = {5, 9, 1, 7, 3}; // 示例数组
int n = sizeof(A) / sizeof(A[0]);
int maxVal, minVal;
findMaxMin(A, n, &maxVal, &minVal); // 调用函数并传递结果地址
printf("最大值: %d\n", maxVal);
printf("最小值: %d\n", minVal);
return 0;
}
```
在这个程序中,`findMaxMin` 函数接收输入数组、数组长度以及指向最大值和最小值存储位置的指针。在主函数中,我们创建了一个示例数组`A`,然后调用这个函数找到最大值和最小值,并将结果打印出来。
阅读全文