我正试着写一个程序,计算在给定的年复利下,任何一笔钱翻一番所需要的时间。
当我运行这个程序时,我发现
- 循环未退出
- 计数器无限递增
- ,总金额为100
我做错了什么?
int main(){
cout << "Please enter the interest rate in % per annum:";
int counter = 0;
int sum=100;
int interest = 0;
cin >> interest;
while(sum<200){
counter++;
sum += sum*(interest / 100);
}
cout << "n It would take about " << counter << " years to double";
}
interest
是int
所以这一行
interest / 100
做的是整数除法,总是0
。快速的解决方法是改变字面量,这样你就可以进行浮点运算
sum += sum*(interest / 100.0);