编辑代码

#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[9]={11,9,20,56,42,3,7,15,16};  
 S d;    
 d=MAXMIN(0,8,a);  
 printf("最大值为:%d\n最小值为:%d\n",d.max,d.min);  
 system("pause");  
}