查找数组中数值大小中前二的数所在的下标c语言
时间: 2023-11-21 19:18:44 浏览: 74
好的,以下是C语言的代码实现:
```c
#include <stdio.h>
void find_top_two(int arr[], int n, int *max_index, int *second_max_index) {
// 找到数组中最大的数所在的下标
*max_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[*max_index]) {
*max_index = i;
}
}
// 找到数组中第二大的数所在的下标
*second_max_index = -1;
for (int i = 0; i < n; i++) {
if (i == *max_index) {
continue;
}
if (*second_max_index == -1 || arr[i] > arr[*second_max_index]) {
*second_max_index = i;
}
}
}
int main() {
int arr[] = {3, 1, 5, 7, 2, 4, 6};
int n = sizeof(arr) / sizeof(arr[0]);
int max_index, second_max_index;
find_top_two(arr, n, &max_index, &second_max_index);
printf("最大的数所在的下标为:%d\n", max_index);
printf("第二大的数所在的下标为:%d\n", second_max_index);
return 0;
}
```
这段代码和Python的实现类似,也是先找到数组中最大的数所在的下标,然后再遍历一遍数组,找到除最大值之外的最大值,即为第二大的数所在的下标。需要注意的是,为了能够修改变量的值,我们使用了指针作为参数。
阅读全文