欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

递归求数组元素最大值

程序员文章站 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]中最大的数。

递归求数组元素最大值
运行结果