Ошибка: не удается преобразовать «двойной» в «двойной (двойной, двойной, двойной)» в назначении

Я знаю, что моя работа небрежная, это мое 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

1

Решение

Вы все испортили functions с variables пытаясь присвоить значение функции.

double  computeAmount(double getPrincipal, double getRate, double getYears);

По этой строке вы объявляете computeAmount() быть функцией, которая берет 3 doubles в качестве параметров и вернуть double,

Но в этой строке

computeAmount = pow((1 + getRate / 100),getYears);

Вы пытаетесь использовать его как переменную.

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

double computeAmount = pow((1 + getRate / 100),getYears);
3

Другие решения

Поскольку компилятор пытается вам сказать, вы не можете назначить переменную функции

Если вы хотите, чтобы это была функция, определите ее & назови это.

Если вы хотите, чтобы это была переменная, объявите ее как переменную.

1

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
1

Вы объявили имя computeAmount как имя функции

double  computeAmount(double getPrincipal, double getRate, double getYears);

Итак, это утверждение

computeAmount = pow((1 + getRate / 100),getYears);

не имеет смысла. Как computeAmount это имя функции, затем в приведенном выше выражении оно преобразуется в указатель на функцию, и вы пытаетесь присвоить некоторое двойное значение, возвращаемое функцией pow к этому указателю.

1

computeAmount объявлен как функция, но используется в левой части оператора ‘=’.
Решение. Повторно объявите computeAmount как двойное число:

double computeAmount;
1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector