表达式不能用作函数。

4

在第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: \n\n";

    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;
}

3
第23行代码具体在哪里?你能恰当地格式化你的代码吗? - Tony The Lion
抱歉,这是第一次使用这个网站。第23行是双倍的area_of_sect - (angle_of_sect / 360.0(PI * radius));编译器指向最后一个括号之前的错误。 - AAA
我从来没有理解“第一次使用这个网站”怎么能成为提交问题时代码格式糟糕、细节不足的借口。 - Lightness Races in Orbit
3个回答

6
在数学中,360.0(PI * radius) 明显是乘法。
但在C++中,这显然是试图将360.0作为函数调用 - 这注定会失败。 a(b) 总是一个函数调用。
你需要明确你的运算符:
360.0 * (PI * radius)

那么我需要将360定义为double类型,这样它就不会被误认为是一个函数了? - AAA
不需要做任何解释 - 您只需要按照所示添加额外的 *360.0 已经是一个 double - Alan Stokes

1

你忘记了一个*符号。

(angle_of_sect / 360.0*(PI * radius));

应该是

(angle_of_sect / 360.0*(PI * radius));

它试图调用函数360.0,显然这不是一个函数。


0

在23中,反而

(angle_of_sect / 360.0(PI * radius));

将会是

(angle_of_sect / 360.0*(PI * radius));

你忘记加上*符号了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接