思考题:
如何用递归求出数组中的最大项
解:
我们很简单的把一个拥有n个数字的int类型的数组看成两个部分,
前n-1项和第n项
在进行比较大小的时候,就直接拿前n-1项和第n项进行比较:
如果第n项比较大,就return出第n项
如果前n-1项比第n项要大,就用递归的方法return出前n-1项的最大值
当然这一切都建立在传入当前函数的数字大于1的情况下,当传入的数字为1是,这个数字就为最大值
上面的那一句话就作为递归的出口使用
int MaxNumber(int number[],int n) { if(n>=1) { if(MaxNumber(number, n-1)>number[n]) return MaxNumber(number, n-1); else return number[n]; } else return number[0]; } int main(){ int a[9]={9,8,7,6,5,4,3,21,2}; int number=MaxNumber(a, 8); printf("%d ",number); }