如何让C语言编写的计算器程序支持浮点数输入?
改造整数计算器为支持浮点数的版本
以下是修改后支持浮点数输入输出的完整代码:
#include <stdio.h> #include <math.h> int main() { double num1; double num2; int mod; printf("Enter function 1:Add 2:Subtract 3:Multiply 4:Divide : "); scanf("%d", &mod); printf("Enter first number: "); scanf("%lf", &num1); printf("Enter second number: "); scanf("%lf", &num2); if(mod == 1) { printf("Answer is %.2f\n", num1 + num2); } else if(mod == 2) { printf("Answer is %.2f\n", num1 - num2); } else if(mod == 3) { printf("Answer is %.2f\n", num1 * num2); } else if(mod == 4) { if(num2 == 0) { printf("Error: Division by zero is not allowed\n"); } else { printf("Answer is %.2f\n", num1 / num2); } } else { printf("Error: Invalid function selection\n"); } return 0; }
关键修改点:
- 把存储计算数值的
int num1、int num2改为double类型,提供更高的计算精度,支持小数输入 - 输入时将
scanf的格式符从%d(整数)替换为%lf,匹配double类型的输入 - 输出时将
printf的格式符从%d替换为%.2f,以保留两位小数的格式输出浮点数结果(可根据需求调整为%f或其他格式) - 新增了除数为0的错误判断,避免浮点数除法出现异常结果
- 用
else if替代多个独立if,减少不必要的条件判断,提升代码效率 - 新增了无效功能选择的错误提示,增强程序健壮性
内容的提问来源于stack exchange,提问作者Ali Eren Sirkeci
相关产品推荐
相关产品推荐

