C ++: значение, переданное через параметры функции, дает другой результат - PullRequest
0 голосов
/ 21 октября 2019

У меня проблема, которую я не могу понять. Я пишу ипотечный калькулятор и разбиваю его шаг за шагом, так как первый результат не сработал. Однако у меня возникла проблема с инициализацией функции со значением 250000. Если я запустил ее, то получилось 12500 против 1250, что является правильным ответом.

Я добавил cout << 250000 * monthRate << endl;чтобы проверить, была ли здесь проблема, но это также правильно отображается, если я ввожу ее через cout перед функцией main, и она тоже работает нормально. Есть идеи? </p>

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

double mortgageCalculator(double principal, double rate, double years);

int main()
{

    // local variables
    double principal, rate, years;

    cout << "How much is the principal amount" << endl;
    cin >> principal;
    // cout << "What is the yearly rate?" << endl;
    // cin >> rate;
    // cout << "Term of mortgage (years) " << endl;
    // cin >> years;

    cout << mortgageCalculator(25000, 6, 30) << endl;

    return 0;
}

double mortgageCalculator(double principal, double rate, double years)
{
    rate = rate / 100.0;
    cout << rate << endl;

     double result, monthlyRate = rate / 12.0;
    cout << monthlyRate << endl;

    result = principal * monthlyRate;
    cout << 250000 * monthlyRate << endl;
    cout << result;

    return 0;
}

1 Ответ

5 голосов
/ 21 октября 2019

Вы печатаете, что возвращает функция:

cout << mortgageCalculator(25000, 6, 30) << endl;

И в функции, которую вы имеете:

return 0;

Таким образом, вы распечатаете правильный результат (1250)и затем добавьте 0. Похоже, вы просто хотите вернуть результат, а не распечатывать его в функции.

return principal * monthlyRate;

И удалить все отпечатки внутри функции.

...