题目:
解答代码:
#include <iostream>
#include <cmath>
using namespace std;
//创建max_min函数,以动态数组和数组的元素个数作为参数//
//以包含了最大值和最小值两个指针的指针作为返回值//
int **max_min(int *a,int b,int *e[]){
//给数组p赋值//
for(int i=0;i<b;i++){
//对a操作即对p进行操作//
cin>>a[i];
}
int *tmax=&a[0];
int *tmin=&a[0];
//对数组每个元素进行检查比对,更新最小值与最大值//
for(int i=0;i<b;i++){
if(*tmax<a[i]){
tmax=&a[i];
}
if(*tmin>a[i]){
tmin=&a[i];
}
}
//指针e指向其他两个指针//
e[0]=tmax;
e[1]=tmin;
return e;
}
int main(){
//接收输入的数组元素个数//
int n;
cin>>n;
int **all;
//创建动态数组//
int *p;
p=new int[n];
//为了防止函数里面创建的数组被销毁,在这里创建//
//创建了一个元素为指针的数组//
int *f[2];
all=max_min(p,n,f);
cout<<"max = "<<**all<<endl;
cout<<"min = "<<**(all+1)<<endl;
}