在多个整数中寻找最大和次大C语言
时间: 2024-12-17 08:20:05 浏览: 13
在C语言中,找到一组整数中的最大值和次大值,可以采用数组遍历的方式。这里提供一种简单的方法:
```c
#include <stdio.h>
// 函数声明,返回两元素的最大值和次大值
void findMaxAndSecondMax(int arr[], int n, int* max, int* secondMax) {
*max = arr[0]; // 初始化最大值为第一个元素
*secondMax = *max; // 初始阶段,假设次大值也是最大值
for (int i = 1; i < n; i++) { // 遍历数组,从第二个元素开始
if (arr[i] > *max) { // 如果当前元素大于已知的最大值
*secondMax = *max; // 更新次大值为旧的最大值
*max = arr[i]; // 新的最大值更新为当前元素
} else if (arr[i] > *secondMax && arr[i] != *max) { // 否则,如果当前元素既不是最大也不是最小
*secondMax = arr[i]; // 更新次大值
}
}
}
int main() {
int numbers[] = {5, 10, 15, 20, 7}; // 示例整数数组
int n = sizeof(numbers) / sizeof(numbers[0]);
int max, secondMax;
findMaxAndSecondMax(numbers, n, &max, &secondMax); // 调用函数并传参
printf("最大值: %d, 次大值: %d\n", max, secondMax);
return 0;
}
```
在这个例子中,`findMaxAndSecondMax`函数接收一个整数数组、数组长度以及指向最大值和次大值的指针。函数内部通过遍历,找出最大值和次大值。
阅读全文