c语言,从键盘输入10个数,用指针作为函数参数编程计算最大值和最小值,并返回它们所在数组中的位置
时间: 2023-11-28 13:04:25 浏览: 176
求最大值和最小值
下面是一个示例代码,用指针作为函数参数计算最大值和最小值,并返回它们所在数组中的位置:
```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` 来修改指针所指向的值,而不是直接修改指针本身的值。
阅读全文