表达式不能用作函数

时间:2015-09-12 19:37:10

标签: c++

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

2 个答案:

答案 0 :(得分:6)

在数学中,360.0(PI * radius)显然是乘法。

但是在C ++中,显然是尝试将360.0称为函数 - 这注定要失败。 a(b)始终是函数调用。

您需要明确您的运营商:

360.0 * (PI * radius)

答案 1 :(得分:1)

您忘记了template< typename T, size_t N > T& last(T (&array)[N]) { return array[N-1]; } // ... int array[SOME_SIZE] = { ... }; printf("Last element = %d", last(array)); 标志。

*

应该是

(angle_of_sect / 360.0(PI * radius));

它试图调用功能360.0,这显然不是一个功能。