You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言实现两数交换输出异常为0.00,应如何修改代码?

C语言数字交换代码修复说明

需要修改的位置如下:

  • 修正scanf的格式控制符
    scanf不支持在格式符中添加.1这类精度限制,原代码的scanf("%.1lf %.1lf",&Num1,&Num2);会出现输入匹配失败,导致两个数字变量未被正确赋值,最终输出0.00,需修改为scanf("%lf %lf",&Num1,&Num2);。
  • 新增原始输入值的打印逻辑
    你期望输出的第一行是原始输入的两个数字,现有代码没有对应打印语句,需在交换逻辑前添加printf("%.0lf %.0lf\n", Num1, Num2);,匹配你示例的原始输入输出效果。
  • 调整交换后的打印格式
    原代码的printf("%.2lf\n%.2lf",Num1,Num2);会将两个输出值拆分为两行,不符合你期望的同行输出效果,需将格式符中的\n替换为空格,修改为printf("%.2lf %.2lf", Num1, Num2);。

修改后的完整代码如下:

#include<stdio.h>
int main(){
    double Num1,Num2,temp;
    scanf("%lf %lf",&Num1,&Num2);
    // 打印原始输入值
    printf("%.0lf %.0lf\n", Num1, Num2);
    temp=Num1;
    Num1=Num2;
    Num2=temp;
    // 打印交换后的值
    printf("%.2lf %.2lf",Num1,Num2);
    return 0;
}

输入1 2时,输出结果为:

1 2
2.00 1.00

完全符合预期。

内容的提问来源于stack exchange,提问作者Vaibhav Katre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:21:01