我正在编写一个不返回任何数据的函数。程序计算圆柱体的面积和体积。我试图使用的公式是surfacearea =2π*(半径)^ 2 +高度*(2π*半径)和体积=π*(半径)^ 2 *高度 我在设置方程时遇到了麻烦。我有这个:
surface_area_calc = (2 * PI) ∗ (pow (radius,2)) + height ∗ ((2 * PI) ∗
radius);
volume_calc = PI ∗ (pow (radius,2)) ∗ height;
但我确定这是错的,因为我在尝试编译程序时遇到错误。我得到的错误是说'在文字和标识符之外不允许使用非ASCII字符'。
答案 0 :(得分:3)
不要将=
放在宏
#define PI 3.14159...
=
将其复制到代码
volume_calc = PI ∗ (pow (radius,2)) ∗ height;
变为
volume_calc = = 3.14159 ∗ (pow (radius,2)) ∗ height;
// ^^^^^^^^^
这是语法错误。
答案 1 :(得分:2)
您有两种选择,而不是错误的
#define PI = 3.14159265358979323846
坚持使用pre-processor macro并执行
#define PI 3.14159265358979323846
或通过
使用const
限定的C变量
const double PI = 3.14159265358979323846;
由于代码使用库函数pow()
,代码应该为编译器提供此函数的原型。
这可以通过包含适当的库头来实现。在这种情况下,请执行:
#include <math.h>
到编译完成时,告诉链接器实际链接实现math.h
(通常驻留在libm.*
)中的东西的库(对于GCC)使用选项
-lm
请注意,在通过编译器引导链接器时,需要在源文件之后使用库提供的库来指定库。
gcc main.c -o main -lm
以下情况最有可能失败
gcc -lm main.c -o main
答案 2 :(得分:1)
你在Linux吗?是这样,做:
#include <math.h>
位于代码顶部并使用-lm
进行编译,如下所示:
gcc test.c -o test -lm