c语言求最大值最小值
时间: 2024-12-29 08:19:01 浏览: 52
在C语言中,寻找数组的最大值和最小值可以使用循环结构结合条件判断来实现。以下是两种常见的方法:
**1. 使用for循环遍历数组:**
```c
#include <stdio.h>
int findMinMax(int arr[], int size, int *min, int *max) {
if (size == 0) {
return -1; // 数组为空
}
*min = arr[0]; // 假设第一个元素是最小值
*max = arr[0]; // 同样假设第一个元素是最大值
for (int i = 1; i < size; i++) {
if (arr[i] < *min) {
*min = arr[i];
}
else if (arr[i] > *max) {
*max = arr[i];
}
}
return 0; // 成功找到并返回
}
int main() {
int numbers[] = {5, 2, 9, 1, 7};
int min, max;
findMinMax(numbers, sizeof(numbers) / sizeof(numbers[0]), &min, &max);
printf("Minimum value: %d\n", min);
printf("Maximum value: %d\n", max);
return 0;
}
```
**2. 使用指针和函数:**
```c
#include <stdio.h>
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
void findMinMaxIterative(int arr[], int *min, int *max) {
if (ARRAY_SIZE(arr) <= 1) {
*min = *max = arr[0];
} else {
*min = arr[0], *max = arr[0];
for (int i = 1; i < ARRAY_SIZE(arr); i++) {
if (arr[i] < *min) {
*min = arr[i];
}
else if (arr[i] > *max) {
*max = arr[i];
}
}
}
}
int main() {
int numbers[] = {5, 2, 9, 1, 7};
int min, max;
findMinMaxIterative(numbers, &min, &max);
printf("Minimum value: %d\n", min);
printf("Maximum value: %d\n", max);
return 0;
}
```
在这两个例子中,`findMinMax` 函数会找出并返回输入数组的最小值和最大值。你可以根据需要选择合适的版本。
阅读全文
相关推荐

















