c语言 运用递归算法求出数组中的最大值

 

思考题:

如何用递归求出数组中的最大项

解:

我们很简单的把一个拥有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\t",number);
}

 

posted @ 2020-05-23 23:49  雾漫大武汉  阅读(5421)  评论(0编辑  收藏  举报