编辑代码

#include<stdio.h>
typedef struct 
{
	int max;
	int min;
}S;
S MAXMIN(int i,int j,int b[]){
	S s,SL,SR;
	int mid;
	if(i==j)
	{
		s.max=s.min=b[i];
		return s;
	}
	if(i==j-1)
	{
		if(b[i]>=b[j])
		{
			s.max=b[i];
			s.min=b[j];
			return s;
		}
		if(b[i]<b[j])
		{
			s.max=b[j];
			s.min=b[i];
			return s;
		}
	}
	mid=(i+j)/2;
	SL=MAXMIN(i,mid,b);
	SR=MAXMIN(mid+1,j,b);
	if(SL.max>SR.max)
		s.max=SL.max;
	else
		s.max=SR.max;
	if(SL.min>SR.min)
		s.min=SR.min;
	else
		s.min=SL.min;
	return s;
}
int main(){
	int k;
	S d;
	int n=9;
	int a[9]={11,9,20,56,42,3,7,15,16};
	d=MAXMIN(0,n-1,a);
	printf("最大值为:%d,最小值为:%d\n",d.max,d.min);
}