在第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;
}
答案 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,这显然不是一个功能。