Я знаю, что моя работа небрежная, это мое 4-е задание в этом классе. Любая помощь будет оценена, спасибо.
double getPrincipal(0);
double getRate(0);
double getYears(0);
double computeAmount(double getPrincipal, double getRate, double getYears);
double displayAmount(double principal, double rate, double years, double amount);
cout << "what is the principal ammount?" << endl;
cin >> getPrincipal;
cout << "What is the percentage rate?" << endl;
cin >> getRate;
cout << "Over how many years will the money stay in the bank?" << endl;
cin >> getYears;
computeAmount = pow((1 + getRate / 100),getYears); // This is where i got the error
Вы все испортили functions
с variables
пытаясь присвоить значение функции.
double computeAmount(double getPrincipal, double getRate, double getYears);
По этой строке вы объявляете computeAmount()
быть функцией, которая берет 3 double
s в качестве параметров и вернуть double
,
Но в этой строке
computeAmount = pow((1 + getRate / 100),getYears);
Вы пытаетесь использовать его как переменную.
В зависимости от вашей цели, вы можете изменить одну из этих двух строк. Например, вы можете удалить первую строку и изменить вторую строку на:
double computeAmount = pow((1 + getRate / 100),getYears);
Поскольку компилятор пытается вам сказать, вы не можете назначить переменную функции
Если вы хотите, чтобы это была функция, определите ее & назови это.
Если вы хотите, чтобы это была переменная, объявите ее как переменную.
computeAmount
это имя функции, которую вы определили, которая возвращает double
и занимает 3 double
параметры. pow
возвращает double
,
Измените эту строку на
double computedAmount = pow((1 + getRate) / 100, getYears);
^^^^^^^^^^^^^^ -- notice this is no longer the function name, but a new variable
Вы объявили имя computeAmount
как имя функции
double computeAmount(double getPrincipal, double getRate, double getYears);
Итак, это утверждение
computeAmount = pow((1 + getRate / 100),getYears);
не имеет смысла. Как computeAmount
это имя функции, затем в приведенном выше выражении оно преобразуется в указатель на функцию, и вы пытаетесь присвоить некоторое двойное значение, возвращаемое функцией pow
к этому указателю.
computeAmount объявлен как функция, но используется в левой части оператора ‘=’.
Решение. Повторно объявите computeAmount как двойное число:
double computeAmount;