Как разобраться с функцией pow?
Запускаю задачку, но не могу понять вытекающую из неё проблему. Как решить и понять?
В коде:
#include <stdio.h>
#include <math.h>
float F(float x, float y, float z);
int main(){
float x,y,z,b,k,P;
x=6.5;
b=8/9;
k=4.5;
P = tan(F(x,b,k))+cbrt(F(k,pow(b,2),x))-pow(F,2)(b + 0.1,k,pow(x, 2));
}
float F(float x, float y, float z){
float f;
f = pow(x,2)-pow(y,2)+z;
return f;
}
Возникает проблема в данной строке:
P = tan(F(x,b,k))+cbrt(F(k,pow(b,2),x))-pow(F,2)(b + 0.1,k,pow(x, 2));
Консоль говорит:
main.cpp: In function ‘int main()’:
main.cpp:11:52: error: no matching function for call to ‘pow(float (&)(float, float, float), int)’
11 | P = tan(F(x,b,k))+cbrt(F(k,pow(b,2),x))-pow(F,2)(b + 0.1,k,pow(x, 2));
| ^
Ответы (1 шт):
Автор решения: Anton Menshov
→ Ссылка
В строке:
P = tan(F(x,b,k))+cbrt(F(k,pow(b,2),x))-pow(F,2)(b + 0.1,k,pow(x, 2));
один из вызовов std::pow является pow(F,2), где F - это вовсе не число, а функция:
float F(float x, float y, float z);
Передать ее напрямую в std::pow не получится, да и бессмысленно.
Я подозреваю, что это опечатка, и планировалось вызвать: pow(F(XXX),2), где XXX - это аргумент к F().
Определитесь, с тем, что есть XXX в вашем вычислении.