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);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM