表达式不能用作函数
Expression cannot be used as a function
第23行,它说表达式不能用作函数。我不明白这是什么意思。我不确定它要求我改变什么,希望得到一些帮助。起初,我认为它可能是我在头文件中预定义的M_PI常量,我将其更改为PI并直接在代码中定义它,但这不起作用。
#include "std_lib_facilities_4.h"
int main() {
const double PI = 3.141592653589793238463;
//formula for area of a circle is pi*r^2
//area of a 14" circle is 153.94"
cout << "Enter cord length in inches: nn";
double chord_length;
while(cin >> chord_length) {
double radius = 7.0;
double angle_of_sect = (asin((chord_length / 2.0) / radius)) * 2.0;
double area_of_sect = (angle_of_sect / 360.0(PI * radius));
double area_of_seg = area_of_sect - (((chord_length / 2.0) * radius) * 2.0);
double perc_of_pizza = (100.0 * area_of_seg) / 153.94;
if(chord_length > 14) {
cout << "Chord Length Too Long n";
} else if(chord_length <= 0) {
cout << "Chord Length Too Small n";
}
cout << "nSegment area is equal to: " << perc_of_pizza << ".n";
}
return 0;
}
在数学中,360.0(PI * radius)
显然是乘法。
但是在c++中,这显然是试图调用360.0作为一个函数——这是注定要失败的。a(b)
总是一个函数调用。
你需要明确你的操作符:
360.0 * (PI * radius)
您忘记了*
标志
(angle_of_sect / 360.0(PI * radius));
(angle_of_sect / 360.0*(PI * radius));
试图调用函数360.0,而这个函数显然不是一个函数
In 23, Instead
(angle_of_sect / 360.0(PI * radius));
将是
(angle_of_sect / 360.0*(PI * radius));
你忘了给*
符号
相关文章:
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么虚函数不能是静态的和全局的?
- 为什么继承的受保护构造函数不能公开?
- C++为什么类成员函数不能重新声明,但普通函数可以
- 为什么在C++中使用关系运算符创建的模板函数不能对字符串正常工作?
- 成员函数不能为集合迭代器和const_iterator的输入重载(但可以为其他 STL 迭代器重载)
- 为什么模板函数不能作为模板模板参数传递?
- 为什么 free 函数不能在 C 数组上运行,而 std::begin 在某些情况下可以在 C++14 中运行?
- 构造函数不能用于启发性化
- C 错误 - 函数不能超载
- 有没有办法使成员函数不能从构造函数调用
- 为什么模板函数不能是模板类的友元模板函数
- "Framework::Graphics::Material"的默认构造函数不能被引用 - 它是一个已删除的函数
- lower_bound()函数不能在调试模式下编译
- 为什么函数不能正确强制转换指针(从基类到派生类)
- 显式默认函数不能声明为 constexpr,因为隐式声明不是 constexpr
- 琐碎的默认构造函数不能是 constexpr?
- 函数不能嵌套,那么如何在C++中执行此操作
- 错误:成员函数不能在其类之外声明
- 错误-仅返回类型不同的函数不能重载.c++