C语言双精度数值相加函数返回结果始终为0的问题排查
问题排查与修复方案
核心问题分析
- scanf格式符不匹配:
double类型变量的读取必须使用%lf格式说明符,原代码中误用%f(对应float类型),导致输入值无法正确写入in1和in2,变量保持初始0值,最终相加结果为0。 - 字符串换行错误:原代码中
printf的字符串未使用标准换行转义符\n,会引发编译警告,需修正为正确的换行写法。 - 冗余代码:
addem函数内定义的sum变量未被使用,可删除以简化代码。
修复后的完整代码
#include <stdio.h> double addem(double input1, double input2) { return input1 + input2; } int main(){ double in1, in2, add = 0; printf("Enter the numbers\n"); scanf("%lf", &in1); scanf("%lf", &in2); // Calling function add = addem(in1, in2); printf("Sum = %f\n", add); return 0; }
验证运行结果
Enter the numbers
3
3
Sum = 6.000000
内容的提问来源于stack exchange,提问作者kartiks77
相关产品推荐
相关产品推荐

