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

本文介绍了一个使用递归方法实现的C语言函数,该函数能够找出整型数组中前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);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值