【程序】
#include <stdio.h>
int Max(int a[],int left,int right)
{
int max1,max2,max,mid;
if(left+1==right) //最后2个数
return a[left]>a[right]?left:right;
else if(left+1<right) //个数大于2的情况下
{
mid=(left+right)/2;
max1=Max(a,left,mid-1); //左半部分求最大
max2=Max(a,mid,right); //右半部分求最大
return a[max1]>a[max2]?max1:max2; //返回最大下标
}
}
int main()
{
int n,a[100],i,max;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=Max(a,0,n-1);
printf("最大元素下标:%d\n",max);
printf("\n");
}