递归求数组元素最大值
程序员文章站
2022-07-15 13:38:53
...
#include <stdio.h>
int f(int a[], int n)
{
if (n > 1)
{
int t;
t = f(a, n - 1);
return (t > a[n - 1]) ? t : a[n - 1];
}
else
return a[0];
}
int main()
{
int a[]= { 8,2,9,1,3,6,4,7,5 };
printf("%d\n", f(a, 9));
}
思路:递归调用,就可以找到最初的出发点,即f(a,1),此时返回a[0];然后f(a,2),调用一次f(a,1),返回a[0]和a[1]中较大的数;再f(a,3),调用f(a,2)并把该返回值赋值给t,最后返回a[0],a[1],a[2]中较大的数。到这里,不难看出f(a,n)可返回数组a[n]中最大的数。