为了账号安全,请及时绑定邮箱和手机立即绑定

显示“表达式必须包含整数或枚举类型”的错误,请问应该怎么修改?

显示“表达式必须包含整数或枚举类型”的错误,请问应该怎么修改?

C C++
绝地无双 2022-05-13 15:11:29
Tbeam[j]+=d[i]/(sqrt(1-(m0/(m0+Ubeam[j]))^2)*c);,其中Tbeam,d,Ubeam均为double类型,但是在1上面显示“表达式必须包含整数或枚举类型”的错误,应该怎么修改?
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

你的^操作符使用错了,^操作符在C/C++里面是按位异或的意思,所以a^b的话,a和b都需要时整数才行,你的是double肯定不行了。不过我想你是想计算平方,C里面指数运算需要调用函数pow。

拓展:

1、C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。

2、它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。最新正式标准C++于2014年8月18日公布。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!

3、C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。


查看完整回答
反对 回复 2022-05-16
?
富国沪深

TA贡献1790条经验 获得超9个赞

sqrt至少定义了两个函数,
double sqrt(double x)
long double sqrt (long double x);

现在你的参数转换有两种,要自动转换成double或者long double,但是因为两个都可以转换,所以他就报错了。你强制转换成double后应该不会 报错。
Tbeam[j]+=d[i]/(sqrt((double)(1.0-(m0/(m0+Ubeam[j]))^2)*c));

查看完整回答
反对 回复 2022-05-16
  • 2 回答
  • 0 关注
  • 703 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号