C语言使用自定义库时自定义函数输出始终为0,如何获取函数计算结果
代码问题修复说明
- 函数参数类型不匹配:主函数调用
CalcSphVolume(&V, &R)时传入的是变量地址(指针类型),但头文件中定义的函数参数是普通整型int V, int R,这类形参是函数内部的局部变量,修改后不会同步到外部的全局变量,自然拿不到计算结果。需要把函数参数修改为指针类型,修改值时对指针解引用:
// 修正后的球体体积计算函数示例,其余函数同理修改参数 void CalcSphVolume(int *V, int *R) { *V = 1.33 * 3.14 * (*R * *R * *R); }
- 语法错误:多处乘法运算漏写乘号
*,例如3.14(R*R*R)需改为3.14*(R*R*R),0.33*(3.14*(R*R))H需改为0.33*(3.14*(R*R))*H,否则代码无法正常编译运行。 - 精度丢失问题:体积计算结果为浮点数,直接赋值给int类型变量会自动截断小数部分,误差较大。建议将V、R、H的变量类型改为
float或double,同时对应修改scanf、printf的格式符为%f或%lf,可大幅降低计算误差。
内容的提问来源于stack exchange,提问作者Softsense
相关产品推荐
相关产品推荐

