error C2296: '^' : illegal, left operand has type‘double’ 帮我看看怎么回事啊,很急。。。。

voidU3F(doubleU[3],doublef1[3],doublef2[3]){doublea,p,u;u=U[1]/U[0];p=(GAMA-1)*(U[2]-... void U3F(double U[3],double f1[3],double f2[3])
{
double a,p,u;
u=U[1]/U[0];
p=(GAMA-1)*(U[2]-0.5*U[1]*U[1]/U[0]);
a=GAMA*p/U[0];
if (fabs(u)<a)
{
f1[0]=U[0]/2/GAMA*((2*GAMA-1)*u+a);
f1[1]=U[0]/2/GAMA*(2*(GAMA-1)*u*u+a);
f1[2]=(U[0]/2/GAMA*((GAMA-1))*(u^3)+0.5*((u+a)^3)+(3-GAMA)*(u+a)*a*a/2/(GAMA-1));
f2[0]=U[0]/2/GAMA*(u-a);
f2[1]=U[0]/2/GAMA*(u-a)^2;
f2[2]=U[0]/2/GAMA*(0.5*(u-a)^3+(3-GAMA)*(u-a)*a*a/2/(GAMA-1));
}
else
{
U2E(U,f1);
f2[0]=1e-100;f2[1]=1e-100;f2[2]=1e-100;
}
}
error C2296: '^' : illegal, left operand has type‘double’
展开
 我来答
德昂当
推荐于2018-03-01 · TA获得超过2842个赞
知道大有可为答主
回答量:1074
采纳率:100%
帮助的人:756万
展开全部
^ 这个在C语言中表示的是 异或 运算,并不是 几次方。
异或是位运算,要用整数,不能用 浮点数运算。你程序中多次用到如 *(u-a)^2;
u是double 型,(u-a) 是浮点数,不能用这个。
想要平方的话,只能自己乘自己了,要不调用个函数。
pow(u-a,2); 就是 u-a 的2次方。不过文件开头要加上 math.h头文件。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式