有一17个元素的整形数组
寻找最大元素和次大元素
#include "stdio.h"
#include "conio.h"
void maxmin(int a[],int n,int *max,int *min)
{
int a1[5],a2[5];
int i,j,k=0;
int max1,max2,min1,min2;
if(n==1)
*max=*min=a[0];
else if(n==2)
{
if(a[0]>a[1])
{
*max=a[0];
*min=a[1];
}
else
{
*max=a[1];
*min=a[0];
}
}
else
{
for(i=0;i<n/2;i++)
a1[i]=a[i];
for(j=i;j<n;j++)
a2[k++]=a[j];
maxmin(a1,n/2,&max1,&min1);
maxmin(a2,(n-n/2),&max2,&min2);
if (max1 > max2)
*max = max1;
else
*max = max2;
if (min1 > min2)
*min = min2;
else
*min = min1;
}
}
main()
{
int a[10]={1,12,21,4,57,78,95,43,100,23};
int max,min;
maxmin(a,10,&max,&min);
printf("%d %d",max,min);
getch();
}