2013-10-26 61 views
-2

爲了您的21歲生日,您的祖母爲您開立了一個儲蓄賬戶並將1000美元存入賬戶。儲蓄賬戶支付賬戶餘額的3%利息。如果您不再向該賬戶存入更多資金,並且您不從該賬戶中提取任何資金,那麼您的儲蓄賬戶在1至5年結束時的價值是多少?對於while循環C++基本利息計算器

創建一個程序,爲您提供答案。您可以使用以下公式計算答案:b = p *(1 + r)n。在公式中,p是本金(存款的金額),r是年利率(3%),n是年數(1到5),b是儲蓄賬戶餘額第n年結束。 使用for循環。

任何幫助,將不勝感激

這是我有這麼遠,我得到的是一個無限循環

#include <iostream> 
#include <cmath> 
#include <iomanip> 
using namespace std; 

void main() 
{ 
// Inputs // 

double princ = 0.0; 
double rate = 0.0; 
int years = 0; 
int year = 1; 
double total = 0.0; 

// Ask User For INFO // 

cout << "What is the principle? "; 
cin >> princ; 
cout << "What is the rate in decimal? "; 
cin >> rate; 
cout << "how many years? "; 
cin >> years; 



for (double total; total = princ*(1+rate)*year;) 
{ 
cout << "The balance after year " << year << " is "<< total << endl << endl; 
year += 1; 
} 

while((years + 1)!= year); 

system("pause"); 
} 
+4

'void main()','system(「pause」)',...人們在哪裏學習這些東西? – dreamlax

+0

@dreamlax當學生第一次學習時,他們碰巧使用Visual Studio,他們感到困惑,因爲Visual Studio在程序結束後自動關閉調試控制檯,因此教師和示例練習經常添加'system(「PAUSE」) ;'最後,在Windows上導致一個消息,例如「按任意鍵繼續...」來打印,並在繼續之前等待輸入。 –

回答

0

你的問題是,你在某種程度上混淆了你的forwhile循環。

而不是

for (double total; total = princ*(1+rate)*year;) 
{ 
cout << "The balance after year " << year << " is "<< total << endl << endl; 
year += 1; 
} 

while((years + 1)!= year); 

你可能想是這樣的:

for (double total; (years +1) != year; total = princ*(1+rate)*year) 
{ 
cout << "The balance after year " << year << " is "<< total << endl << endl; 
year += 1; 
} 

而且你main函數不應該返回void在評論正如已經指出的,而應該是int main()

1

您誤解了for循環的工作原理。它被用來做某些事情,在你的例子中,循環一定的年數是適當的。類似這樣的:

double interest = 1.0 * rate: 
double accumulated = 1.0 * interest; 

for (auto i=1; i < years; ++i) { 
    accumulated *= interest; 
    cout << "The balance after year " << i << " is " << (princ * accumulated) << std::endl; 
}