查找数组中数值大小中前二的数所在的下标
时间: 2023-11-21 14:18:44 浏览: 63
好的,可以为您提供代码实现,如下所示(假设数组名为 arr,数组长度为 n):
```python
# 找到数组中最大的数所在的下标
max_index = 0
for i in range(1, n):
if arr[i] > arr[max_index]:
max_index = i
# 找到数组中第二大的数所在的下标
second_max_index = None
for i in range(n):
if i == max_index:
continue
if second_max_index is None or arr[i] > arr[second_max_index]:
second_max_index = i
# 输出结果
print("最大的数所在的下标为:", max_index)
print("第二大的数所在的下标为:", second_max_index)
```
这段代码先找到数组中最大的数所在的下标,然后再遍历一遍数组,找到除最大值之外的最大值,即为第二大的数所在的下标。
相关问题
查找数组中数值大小中前二的数所在的下标c语言
好的,以下是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的实现类似,也是先找到数组中最大的数所在的下标,然后再遍历一遍数组,找到除最大值之外的最大值,即为第二大的数所在的下标。需要注意的是,为了能够修改变量的值,我们使用了指针作为参数。
1)打印数组元素; (2)输入一个身高值(例如156),在数组中查找该数值,如果找到,则打印该数值在数组中第一次 出现的下标,若未找到,则打印“无该身高的学生”。 (3)查找数组中是否有相同的身高值,若有,则打印身高值, 出现总次数,和对应的数组下标;否 则,输出“无身高相同的学生”。 假设条件: (1)数组数据为正整数 (2)数组中只有一个相同的身高值,并且相同身高值的出现次 数只有两次。
1)打印数组元素:
我可以使用循环遍历数组中的每个元素,并将其打印出来。
2)输入一个身高值(例如156),在数组中查找该数值,如果找到,则打印该数值在数组中第一次出现的下标,若未找到,则打印“无该身高的学生”。
我可以使用循环遍历数组中的每个元素,如果找到身高值与输入值相同的元素,则打印该元素的下标,并退出循环。如果循环结束后仍未找到相同的身高值,则打印“无该身高的学生”。
3)查找数组中是否有相同的身高值,若有,则打印身高值, 出现总次数,和对应的数组下标;否则,输出“无身高相同的学生”。
我可以使用两个循环遍历数组中的每个元素,比较它们的身高值是否相同。如果找到相同的身高值,则记录下该值出现的总次数和对应的数组下标,并继续循环。如果循环结束后仍未找到相同的身高值,则打印“无身高相同的学生”。最后,如果找到相同的身高值,则打印该值、出现总次数和对应的数组下标。
阅读全文