用函数编程输出数组中最大值和最小值并返回它们所在数组中的位置下标
时间: 2024-05-06 22:15:10 浏览: 66
可以使用以下函数实现:
```python
def find_max_min(arr):
max_val = arr[0]
min_val = arr[0]
max_idx = 0
min_idx = 0
for i in range(len(arr)):
if arr[i] > max_val:
max_val = arr[i]
max_idx = i
if arr[i] < min_val:
min_val = arr[i]
min_idx = i
return (max_val, max_idx), (min_val, min_idx)
```
这个函数接受一个数组作为输入,并返回一个包含最大值和最小值及它们所在数组中的位置下标的元组。可以通过以下示例进行测试:
```python
arr = [5, 2, 8, 1, 9, 3]
max_val, min_val = find_max_min(arr)
print("Max value:", max_val[0], "at index", max_val[1])
print("Min value:", min_val[0], "at index", min_val[1])
```
输出结果为:
```
Max value: 9 at index 4
Min value: 1 at index 3
```
相关问题
c语言,从键盘输入10个数,用指针作为函数参数编程计算最大值和最小值,并返回它们所在数组中的位置
下面是一个示例代码,用指针作为函数参数计算最大值和最小值,并返回它们所在数组中的位置:
```c
#include <stdio.h>
void max_min(int *arr, int len, int *max_pos, int *min_pos) {
int max = arr[0], min = arr[0];
*max_pos = *min_pos = 0;
for (int i = 1; i < len; i++) {
if (arr[i] > max) {
max = arr[i];
*max_pos = i;
}
if (arr[i] < min) {
min = arr[i];
*min_pos = i;
}
}
}
int main() {
int arr[10];
printf("请输入10个数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
int max_pos, min_pos;
max_min(arr, 10, &max_pos, &min_pos);
printf("最大值为 %d,位于数组下标 %d\n", arr[max_pos], max_pos);
printf("最小值为 %d,位于数组下标 %d\n", arr[min_pos], min_pos);
return 0;
}
```
在上面的代码中,`max_min` 函数接受一个整数数组和数组长度作为参数,以及两个指向整数的指针 `max_pos` 和 `min_pos`。该函数使用循环遍历数组,找到最大值和最小值,并将它们所在的下标分别存储在 `max_pos` 和 `min_pos` 中。在主函数中,我们先读入 10 个数,然后调用 `max_min` 函数来计算最大值和最小值,并打印它们的值和位置。
注意,这里用 `*max_pos` 和 `*min_pos` 来修改指针所指向的值,而不是直接修改指针本身的值。
编程求一个整型数组中的最大值和最小值,并输出其下标。用c语言
好的,以下是一个示例代码,可以求出一个整型数组中的最大值和最小值,并输出其下标:
```c
#include <stdio.h>
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int len = sizeof(arr) / sizeof(int); // 数组长度
int max = arr[0], min = arr[0], max_idx = 0, min_idx = 0;
for (int i = 1; i < len; i++) {
if (arr[i] > max) {
max = arr[i];
max_idx = i;
}
if (arr[i] < min) {
min = arr[i];
min_idx = i;
}
}
printf("max = %d, index = %d\n", max, max_idx);
printf("min = %d, index = %d\n", min, min_idx);
return 0;
}
```
这个示例代码中,我们定义了一个整型数组 `arr`,并通过 `sizeof` 运算符求出其长度 `len`。然后,我们用 `for` 循环遍历整个数组,同时记录下最大值 `max`、最小值 `min`、最大值下标 `max_idx` 和最小值下标 `min_idx`。最后,我们通过 `printf` 函数输出最大值和最小值及其下标。
注意,这个示例代码中的数组 `arr` 是固定的,如果你想输入一个具体的数组,可以使用 `scanf` 函数。
阅读全文