Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 表达式必须具有有关easy函数的整型或枚举类型_C++ - Fatal编程技术网

C++ 表达式必须具有有关easy函数的整型或枚举类型

C++ 表达式必须具有有关easy函数的整型或枚举类型,c++,C++,我想知道为什么float tc1_2cif_c的行有很多关于表达式的错误,必须是integral或enum类型 float age; float cfd0; float value; float k0; float k11; float kr1; float kr2; float comfd0; float kr5; float kr6; float kr7; float cr1; float cr2; value = 0.0f; square=0.0f; float tc1_2cif

我想知道为什么float tc1_2cif_c的行有很多关于表达式的错误,必须是integral或enum类型

float age;
float cfd0;
float value;
float k0;
float k11;
float kr1;
float kr2;
float comfd0;
float kr5;
float kr6;
float kr7;
float cr1;
float cr2;    
value = 0.0f;
square=0.0f;

float tc1_2cif_c=-((cfd0*(exp((-k0/2. - kr1/2. - kr2/2. - kr5/2. - sqrt((k0 + kr1 + kr2 + kr5)^2. - 4.*(k0*kr2 + k0*kr5 + kr1*kr5))/2.)*t) - exp((-k0/2. - kr1/2. - kr2/2. - kr5/2. + sqrt((k0 + kr1 + kr2 + kr5)^2. - 4.*(k0*kr2 + k0*kr5 + kr1*kr5))/2.)*t))*kr1)/sqrt((k0 + kr1 + kr2 + kr5)^2. - 4.*(k0*kr2 + k0*kr5 + kr1*kr5)));

cr1= tc1_2cif_c;


cr2= tc2_2cif_c;



IF=a1*exp(l1*t)+a2*exp(l2*t);
square=(   mv_r -( cr1+cr2+vb*IF)  );



value += 0.5*(square*square);

查看此子表达式,例如:

(k0 + kr1 + kr2 + kr5)^2
操作员
^
不会做您认为它会做的事情。它不是“指数”(或“幂”)运算符。而且,它不适用于浮点数。它是一个按位异或运算符,仅适用于整数类型(也包括enum!)

改为使用函数:

std::pow(k0 + kr1 + kr2 + kr5, 2)