搜索

C++ “表达式必须包含整数或枚举类型”错误

发布网友 发布时间:2022-04-24 13:58

我来回答

3个回答

热心网友 时间:2023-10-15 10:04

你的^操作符使用错了,^操作符在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++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

热心网友 时间:2023-10-15 10:04

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

热心网友 时间:2023-10-15 10:05

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));
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top