2011-03-22 86 views
-2

從每年1月1日起,Gabby的前一年薪水提高5%。她希望有一個計劃,能夠計算並顯示未來三年每年加薪的數量。該計劃還應該計算並顯示她三年的總薪水。C++編程 - 計算經常性增加

我必須測試程序,這是我得到的,但是當我檢查它出來錯了。

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

int main() 
{ 
const double RATE = .05; 
double salary = 0.0; 
double raise = 0.0; 
double totalSalary = 0.0; 

cout << "Enter the salary:"; 
cin >> salary; 

for(int counter = 0; counter <=3; counter++) 
{ 
cout <<salary<<endl; 
raise = (salary * 0.05); 


} 

return 0; 
} //end of main function 
+0

當您的問題得到解答時,請不要**刪除您的問題,或編輯它以說「謝謝」。相反,請打開您最喜歡的答案旁邊的複選標記,並獎勵發佈該答案的人,並獲得一點名譽獎勵。 – 2011-03-22 02:37:48

回答

2

你不添加提高到工資:

salary += raise; 
+0

好的。另外,她也沒有計算累計工資。無論是加薪還是累計獎金都沒有顯示出來。 – 2011-03-22 00:51:01

0

首先聲明一個名爲RATE(常數確實應該在程序的頂部,而不是在你的主要功能),但不要在計算中使用它。而是使用0.05的硬編碼值。

其次,您沒有將計算添加到salary變量。您可以使用salary += raisesalary *= (1.0 + RATE)

第三,你根本就沒有對totalSalary變量做任何事情。

您的代碼應該是這個樣子:

#include <iostream> 
using namespace std; 

const double RATE = 0.05; 

int main() 
{ 
    double salary = 0.0; 
    double totalSalary = 0.0; 

    cout << "Enter the salary:" << endl; 
    cin >> salary; 

    for(int counter = 0; counter <=3; counter++) 
    { 
     cout << salary << endl; 
     salary *= (1.0 + RATE);\ 
     totalSalary += salary; 
    } 

    cout << "The total salary is " << totalSalary << endl; 

    return 0; 
} 
1

這一個是有點更準確。它將以小數點計算而不四捨五入,然後每年加薪一次,然後加上她的加薪總額將超過三年。此外,還會添加一些註釋,以便您知道代碼中發生了什麼。

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

int main() 
{ 
//declare variables 
double salary = 0.0; 
double totalSalary = 0.0; 
const double RATE = 0.05; 

//input 
cout << "Enter the salary: "; 
cin >> salary; 
cout << endl; 

//loop for years and calculation 
for(int numYears = 1; numYears <= 3; numYears ++) 
{ 
cout << fixed; 
cout << setprecision(2); 
salary = salary*(1+RATE); 
cout << "Year " << numYears; 
cout << ": $" << salary << endl; 
//end for 
} 

cout << "The total salary over three years is $" << totalSalary << endl; 
cout << endl; 

system("pause"); 
return 0; 

}