编辑代码

#include<stdio.h>
#include<windows.h>
typedef struct 
{
	int max;
	int min;
}X;
X MM(int i,int j,int b[]){
	X s,x,y;
	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;
	x=MM(i,mid,b);
	y=MM(mid+1,j,b);
	if(x.max>y.max)
		s.max=x.max;
	else
		s.max=y.max;
	if(x.min>y.min)
		s.min=y.min;
	else
		s.min=x.min;
	return s;
}
int main()
{
	int k,n,a[99];
	X d;
	printf("输入序列元素个数:");
	scanf("%d",&n);
	printf("输入序列元素:");
	for(k=0;k<=n-1;k++)
	{
		scanf("%d",&a[k]);
	}
	d=MM(0,n-1,a);
	printf("最大值为:%d\n最小值为:%d\n",d.max,d.min);
	system("pause");
	return 0;
}