Программирование на C ++ - вычисление повторяющихся увеличений - PullRequest
0 голосов
/ 22 марта 2011

Начиная с 1 января каждого года, Габби получает 5% -ное повышение зарплаты за предыдущий год.Она хочет программу, которая рассчитывает и отображает сумму ее ежегодных повышений в течение следующих трех лет.Программа также должна рассчитать и отобразить ее общую зарплату за три года.

Я должен протестировать программу, и это то, что я получаю, но когда я проверяю стол, она выходит из строя.

#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

Ответы [ 3 ]

2 голосов
/ 22 марта 2011

Вы не добавляете повышение к зарплате:

salary += raise;
1 голос
/ 29 июня 2012

Это немного точнее. Он вычислит с десятичными знаками без округления и опубликует повышение для каждого года, затем добавит, сколько всего ее повышение будет за три года. Также добавлены некоторые заметки, чтобы вы знали, что происходит в коде.

#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;

}
0 голосов
/ 22 марта 2011

Прежде всего, вы объявляете константу с именем RATE (которая действительно должна быть в верхней части программы, а не в вашей основной функции), но не удосуживаетесь использовать ее в своих вычислениях. Вместо этого вы используете жестко закодированное значение 0.05.

Во-вторых, вы не добавляете вычисления в переменную salary. Вы можете использовать salary += raise или salary *= (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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...