2016-11-09 49 views
0

我試圖使用遞歸函數來減半用戶輸入,直到它達到< 1.0 ..無論我嘗試它總是結果大於1.任何指導將不勝感激。無法得到結果小於1使用分部C++

void counter(float count) 
{ 
    if (count >= 1) 
    { 
     cout << count << endl; 
     counter(count/2); 
    } 
} 
+3

是的,如果它小於1.0,你永遠不會打印它。也許你想在'if'前加'cout'語句。 –

+0

有沒有辦法實現我所嘗試的? –

+0

在if語句後添加一個cout。這將是最後一個函數調用。修正它的 – NathanOliver

回答

2

如果你想打印count當它變成低於1,你需要添加一行爲。

void counter(float count) 
{ 
    if (count >= 1) 
    { 
     cout << count << endl; 
     counter(count/2); 
    } 
    else 
    { 
     cout << count << endl; 
    } 
} 

可以簡化使用:

void counter(float count) 
{ 
    cout << count << endl; 
    if (count >= 1) 
    { 
     counter(count/2); 
    } 
} 
1

你幾乎沒有...

添加一個else檢查什麼事情發生,如果該值小於1.0

void counter(float count) 
{ 
    if (count >= 1) 
    { 
     cout << count << endl; 
     counter(count/2); 
    } else 
    { 
     cout << count << endl; 
    } 
}