c语言中利用指针编写找出数组中第二大的数
时间: 2024-09-27 14:10:18 浏览: 25
在 C 语言中,通过指针可以方便地遍历数组并找到其中的第二大值。这里是一个简单的示例程序,它首先假设数组中有足够的元素,并且至少有一个非零值:
```c
#include <stdio.h>
#include <limits.h>
int findSecondLargest(int* arr, int size) {
if (size <= 1) { // 如果数组长度小于等于1,没有第二大的数
return INT_MIN;
}
int largest = arr[0];
int second_largest = *arr; // 初始时假设第一个元素就是第二大的
for (int i = 1; i < size; i++) {
if (arr[i] > largest) {
second_largest = largest;
largest = arr[i];
} else if (arr[i] > second_largest && arr[i] != largest) {
second_largest = arr[i]; // 更新第二大的值,排除最大值
}
}
return second_largest;
}
int main() {
int array[] = {5, 10, 3, 8, 7};
int array_size = sizeof(array) / sizeof(array[0]);
int second_largest_num = findSecondLargest(array, array_size);
printf("The second largest number is: %d\n", second_largest_num);
return 0;
}
```
这个 `findSecondLargest` 函数会遍历整个数组,如果遇到比当前 `largest` 更大的元素,就更新 `second_largest`;否则,如果元素大于 `second_largest` 但不是最大的,就更新 `second_largest`。
阅读全文