编辑代码

#include<stdio.h>
#include<windows.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;
}
void main(){
	int k,n,a[100];
	S d;
	printf("输入问题规模n:");
	scanf("%d",&n);
	printf("输入问题的数字:");
	for(k=0;k<=n-1;k++)
	{
		scanf("%d",&a[k]);

	d=MAXMIN(0,n-1,a);
	printf("最大值为:%d,最小值为:%d\n",d.max,d.min);
	system("pause");
    }
  int main(){
 float a[11]={11,9,20,42,56,3,7,31,15,31,16};
   float fmax,fmin;
     maxmin(a,0,10,&fmax,&fmin);
     printf("%f,%f",fmax,fmin); 
}