求整形数组最大值和次大值C语言
时间: 2024-09-22 16:06:36 浏览: 45
C语言程序:求子数组的最大和
在C语言中,你可以使用循环遍历数组并跟踪最大值和次大值的方式来找出整型数组的最大值和次大值。以下是一个简单的示例代码:
```c
#include <stdio.h>
void findMaxAndSecondMax(int arr[], int size, int *max, int *secondMax) {
if (size <= 1) {
printf("Array is too small or empty.\n");
return;
}
*max = arr[0]; // 初始化最大值为第一个元素
*secondMax = *max; // 初始时次大值与最大值相同
for (int i = 1; i < size; i++) {
if (arr[i] > *max) { // 如果当前元素大于最大值
*secondMax = *max; // 更新次大值
*max = arr[i]; // 更新最大值
} else if (arr[i] > *secondMax && arr[i] != *max) { // 否则如果大于次大值但不大于最大值
*secondMax = arr[i]; // 更新次大值
}
}
}
int main() {
int array[] = {5, 9, 2, 8, 4, 7};
int max, secondMax;
int size = sizeof(array) / sizeof(array[0]);
findMaxAndSecondMax(array, size, &max, &secondMax);
printf("Max value: %d\n", max);
printf("Second Max value: %d\n", secondMax);
return 0;
}
```
在这个例子中,`findMaxAndSecondMax` 函数接收一个整数数组、数组大小以及指向最大值和次大值的指针。函数内部通过遍历数组,动态更新最大值和次大值。
阅读全文