用C语言编写函数找出数组中的最大值和次大值用指针
时间: 2024-09-16 07:02:11 浏览: 62
从个数中找出其中最大数和最小数程序。-数据结构c语言版
在C语言中,要找到数组中的最大值和次大值,可以编写两个函数,一个用于查找最大值,另一个辅助函数用于查找次大值。这里使用指针可以简化对数组元素的操作。下面是一个简单的示例:
```c
#include <stdio.h>
#include <limits.h>
// 函数声明,返回数组中的最大值
int findMax(int* arr, int size);
// 辅助函数,返回数组中除了最大值之外的最大值,即次大值
int findSecondLargest(int* arr, int size, int maxVal);
int main() {
int array[] = {5, 8, 2, 10, 3, 7};
int size = sizeof(array) / sizeof(array[0]);
int max = findMax(array, size);
int secondLargest = findSecondLargest(array, size, max);
printf("最大值: %d\n", max);
printf("次大值: %d\n", secondLargest);
return 0;
}
// 找到数组中的最大值
int findMax(int* arr, int size) {
int max = INT_MIN; // 初始化为负无穷
for (int i = 0; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
// 辅助函数,找出除最大值外的最大值
int findSecondLargest(int* arr, int size, int maxVal) {
int secondLargest = INT_MIN; // 初始化为负无穷
for (int i = 0; i < size; i++) {
if (arr[i] != maxVal && arr[i] > secondLargest) {
secondLargest = arr[i];
}
}
return secondLargest;
}
```
在这个例子中,`findMax`函数遍历数组并返回最大值,`findSecondLargest`函数则在排除最大值后寻找剩余元素中的最大值作为次大值。
阅读全文