C语言double类型monthlyPayment函数计算正确但无法返回值求助
问题解决方法
核心错误点
你的monthlyPayment函数本身逻辑和返回值完全正常,问题出在主函数的打印逻辑上:
你在主函数中输出monthly变量的代码为:
printf("Monthly: %lf\n", &monthly);
此处你给printf传入的是&monthly,也就是monthly变量的内存地址,不是变量存储的数值。%lf格式符要求传入double类型的数值,传入地址就会输出不符合预期的乱码值,并非函数没有返回正确结果。
修复方案
- 修改主函数的打印语句,删掉
monthly前的取地址符&:
printf("Monthly: %lf\n", monthly);
- 如果你使用GCC、Clang等编译器在Linux/Unix环境下编译代码,因为代码中用到了
pow数学函数,编译时需要添加-lm参数链接数学库,否则可能出现pow函数调用异常,示例编译命令:
gcc 你的代码文件名.c -o 输出程序名 -lm
修改后即可正常获取函数返回的月供计算结果。
内容的提问来源于stack exchange,提问作者itsReZa
相关产品推荐
相关产品推荐

