设计c语言程序实现以下功能:一个数组有10个元素,利用指针作为函数参数,输出数组中最大和最小的元素值及其下标。 输入格式: "%d" 输出格式: "最大数是%d,其下标是%d,最小数%d,其下标是%d\n"
时间: 2024-03-22 13:37:47 浏览: 68
好的,以下是实现该功能的C语言程序:
```c
#include <stdio.h>
void findMaxMin(int *arr, int size, int *maxVal, int *maxIdx, int *minVal, int *minIdx){
*maxVal = *minVal = *arr;
*maxIdx = *minIdx = 0;
for(int i=1; i<size; i++){
if(*(arr+i) > *maxVal){
*maxVal = *(arr+i);
*maxIdx = i;
}
if(*(arr+i) < *minVal){
*minVal = *(arr+i);
*minIdx = i;
}
}
}
int main(){
int arr[10] = {2, 5, 8, 1, 10, 6, 3, 7, 9, 4};
int maxVal, maxIdx, minVal, minIdx;
findMaxMin(arr, 10, &maxVal, &maxIdx, &minVal, &minIdx);
printf("最大数是%d,其下标是%d,最小数%d,其下标是%d\n", maxVal, maxIdx, minVal, minIdx);
return 0;
}
```
程序中的 `findMaxMin` 函数用于查找数组中的最大值和最小值,它接收四个指针类型的参数: `arr` 表示数组首元素的地址, `size` 表示数组的大小, `maxVal` 和 `minVal` 分别表示最大值和最小值, `maxIdx` 和 `minIdx` 分别表示最大值和最小值的下标。
在函数内部,首先将第一个元素设为最大值和最小值,然后遍历数组,如果当前元素大于最大值,则更新最大值和最大值下标,如果当前元素小于最小值,则更新最小值和最小值下标。
在 `main` 函数中,我们定义了一个长度为10的数组 `arr` ,并将一些随机值初始化到其中。然后调用 `findMaxMin` 函数,并将最大值、最大值下标、最小值和最小值下标的地址传递给它。最后,我们使用 `printf` 函数输出结果。
阅读全文