编辑代码

#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;
}
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");
}