C语言数组求和代码运行异常:正确结果无法显示问题排查
问题排查:数组求和结果显示错误的C语言代码修复
你的代码核心问题是格式化字符串与变量类型不匹配,导致求和结果显示异常:
sum被定义为float类型(初始值为0.0,累加的也是浮点数组元素),但你使用了整数格式符%d来输出它。这会导致程序把float的二进制存储格式错误解析为整数,从而输出不正确的结果。
修复方案
将求和结果的输出语句中的格式符替换为浮点型格式符即可。如果需要输出整数形式的和(如示例中的12而非12.00),可以使用%.0f;若保留小数则用%f。
修复后的完整代码:
#include <stdio.h> int main() { int size, i; float n[1000], avg, sum = 0.0; printf("Enter size: "); scanf("%d",&size); for (i = 0 ; i < size ; i++) { printf("Enter element %d: ", i+1); scanf("%f",&n[i]); sum +=n[i]; } // 修复:用%.0f输出整数形式的求和结果 printf("Sum: %.0f\n",sum); avg = sum / size; printf("Average: %.2f",avg); return 0; }
测试验证
输入数组大小3,依次输入2、4、6后,程序会正确输出:
Sum: 12 Average: 4.00
内容的提问来源于stack exchange,提问作者historia
相关产品推荐
相关产品推荐

