вызываемый тип объекта 'double' не является функцией или указателем на функцию report () - PullRequest
1 голос
/ 09 ноября 2019

Я пытаюсь создать программу, которая будет рассчитывать розничные цены, когда пользователь вводит данные об оптовых ценах и процентах наценки. Я уверен, что все правильно, за исключением строки № 15, где "double report = report (retailPrice)", где она выдает ошибку called object type 'double' is not a function or function pointer for a report() function.

Я попытался переименовать почти все переменные отчета и дажефункция к чему-то другому, но это все равно приводит к точно такой же ошибке. Кажется, что он работает нормально, когда полностью опускает функцию report () и заменяет ее только на оператор cout в main (), но, к сожалению, назначение требует этого независимо от того, насколько это бессмысленно.

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

double getWholeSale();
double getMarkup();
double calculateRetail(double, double);
double report();

int main()
{
    double wholeSale = getWholeSale();
    double markup = getMarkup();
    double retailPrice = calculateRetail(markup, wholeSale);
    double report = report(retailPrice);
    cout << report;

    return 0;
}
//**************************
double getWholeSale()
{
    double wholeSale;
    cout << "Enter the item's wholesale: ";
    cin >> wholeSale;
    while (wholeSale < 0)
    {
        cout << "Wholesale must be a positive number: ";
        cin >> wholeSale;
    }
    return wholeSale;
}
//**************************
double getMarkup()
{
    double markup;
    cout << "Enter the item's markup percentage: ";
    cin >> markup;
    while (markup < 0)
    {
        cout << "Markup percentage must be a positive number: ";
        cin >> markup;
    }
    return markup;
}
//*************************
double calculateRetail(double markup, double wholeSale)
{
    double retailPrice;
    double markupPercentage = markup / 100;
    retailPrice = (wholeSale * markupPercentage) + wholeSale;
    return retailPrice;
}
//*************************
double report(double retailPrice)
{
    cout << "The retail price is: $" << fixed << showpoint << setprecision(2) << retailPrice;
}

1 Ответ

1 голос
/ 09 ноября 2019

Вы звоните report как:

double report = report(retailPrice);

Вы реализуете report как:

double report(double retailPrice)

Но вы объявляете report как:

double report();

Один из них не похож на другие;) Исправьте вашу декларацию, включив в нее параметр double.

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