Как я могу увеличить результат, представленный моим «для цикла»? - PullRequest
0 голосов
/ 04 мая 2018
for (int j=1; j<=120; j++){

Pop=10180000;            //Pop = Population //
Increase=Pop*0.0118;
Pop=Increase+Pop;


cout<< Increase <<endl;
cout<< Pop <<endl;

}

Я действительно новичок здесь, извините, если я допустил ошибку. Я предполагаю выяснить количество населения (10,18 млн.) За 120 месяцев с увеличением на 1,18% каждый месяц.

Мне удалось найти первый месяц, но цикл for повторяет один и тот же результат каждую строку для следующих 120 строк.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Ваша проблема в том, что вы устанавливаете начальное значение совокупности на каждой итерации цикла. Вы должны сделать это один раз до начала цикла.

Вы также можете упростить вычисление, поскольку увеличение на 1,18% может быть достигнуто простым умножением на 1.0118. Это дает вам что-то вроде:

int Pop = 10180000;
for (int i = 1; i <= 120; i++)
    Pop = Pop * 1.0118;
cout << Pop << endl;

Конечно, если вы писали реальный код, вы можете выделить функциональность, чтобы его можно было легко использовать повторно:

int increaseValue(
    int          value,
    double       ratePerPeriod,
    unsigned int periodCount
) {
    for (unsigned int i = 0; i < periodCount; i++)
        value *= (ratePerPeriod / 100.0 + 1.0);
    return value;
}

:

cout << increaseValue(10180000, 1.18, 120) << endl;
0 голосов
/ 04 мая 2018

В своем коде вы повторно инициализируете Pop как 10180000 в начале каждой итерации. Вы должны переместить его над циклом, чтобы его значение не сбрасывалось на каждой итерации.

Pop=10180000;            //Pop = Population //
for (int j = 1; j <= 120; j++) {
  Increase=Pop*0.0118;
  Pop=Increase+Pop;

  cout<< Increase <<endl;
  cout<< Pop <<endl;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...