东软一道递归题实现数组前K个元素的最大值

函数int maxint(int a[], int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。

int maxint(int a[],int k)

{

int t;

if(    (3)    ) return    (4)    ;

t=maxint(a+1,       );

return (a[0]>t)?a[0]:t;

}

递归的思路如下:

先计算a[0]与{a[1].......a[k-1]}的最大值,而{a[1].......a[k-1]}的最大值可以利用递归方法求得maxint(a+1,k-1);

而{a[1].......a[k-1]}的最大值可以利用a[1]与{a[2]........a[k-1]}进行比较得到最大值,而{a[2]........a[k-1]}的最大值可以利用递归方法求得maxint(a+1,k-1);

如此反复。最后通过K的值大于0来结束。

所以程序完整写如下:

int maxint(int a[],int k)

{
 int t;
 if(k<=0)
 {
  return t;
 }
 t=maxint(a+1,k-1);
 return (a[0]>t)?a[0]:t;
}


void main()
{
 int a[9]={102,13,24,56,93,234,93,23,32};
 int max=maxint(a,5);
 printf("%d\n",max);
}

 

你可能感兴趣的:(东软一道递归题实现数组前K个元素的最大值)