用指针作函数参数,编程序求一维数组中的最大和最小的元素值。 函数接口定义: void maxmin(int arr[ ],int *pt1,int *pt2,int n); 其中 arr 、 pt1、pt2、n 都是用户传入的参数,n为元素个数。函数求指针arr所指向的一维数组中的最大和最小的元素值,并将最大值和最小值存入指针pt1和pt2所指的存储单元中。 裁判测试程序样例: #include<stdio.h> #define N 10 void maxmin(int arr[ ],int *pt1,int *pt2,int n); int main( ) { int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b; p1=&a;p2=&b; maxmin(array,p1,p2,N); printf("max=%d,min=%d",a,b); return 0; } /* 请在这里填写答案 */
时间: 2023-09-16 09:15:55 浏览: 414
指针作函数参数
答案如下:
```c
#include<stdio.h>
#define N 10
void maxmin(int arr[ ],int *pt1,int *pt2,int n);
int main( ) {
int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
p1=&a;p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
return 0;
}
void maxmin(int arr[ ],int *pt1,int *pt2,int n) {
int i;
*pt1 = *pt2 = arr[0]; // 初始化最大值和最小值为数组的第一个元素
for(i=1;i<n;i++) {
if(arr[i]>*pt1) { // 如果当前元素大于最大值,则更新最大值
*pt1 = arr[i];
}
if(arr[i]<*pt2) { // 如果当前元素小于最小值,则更新最小值
*pt2 = arr[i];
}
}
}
```
阅读全文