编辑代码

#include<stdio.h>
#include<iostream>
using namespace std;
void maxmin(float a[],int i,int j,float *fmax,float *fmin) {
	int mid;
	float lmax,lmin,rmax,rmin;
	if(i==j) {
		*fmax=a[i];
		*fmin=a[j];
		return;
	} else if(i==j-1) {
		if(a[i]>a[j]) {
			*fmax=a[i];
			*fmin=a[j];
		} else {
			*fmax=a[j];
			*fmin=a[i];
		}
		return ;

	} else {
		mid=(i+j)/2;
		maxmin(a,i,mid,&lmax,&lmin);
		maxmin(a,mid+1,j,&rmax,&rmin);
		if(lmax>rmax)
			*fmax=lmax;
		else
			*fmax=rmax;
		if(lmin<rmin)
			*fmin=lmin;
		else
			*fmin=rmin;
	}
	return ;
}
int main() {
	int n=9;
	float a[9]={11,9,20,56,42,3,7,15,16};
	float fmax,fmin;
	
	
	maxmin(a,0,n-1,&fmax,&fmin);
    cout<<"在序列{11,9,20,56,42,3,7,15,16}中"<<endl;
    cout<<"最大的值是"<<fmax<<endl<<"最小的值是"<<fmin<<endl;

}