2016-11-09 36 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; 
    } 
}