C语言价格加税费计算异常:编译后税费未纳入结果
问题:税费未计入总价的原因及修复方案
你遇到的问题其实很容易排查,咱们一步步拆解:
核心错误:输出了错误的变量
你已经正确计算了包含税费的总价并存在setprice变量里,但最后printf语句输出的是原始价格变量price,而不是计算好的setprice!这就是为什么运行后总价还是输入的原始价格,税费完全没生效。
额外优化:税费的逻辑合理性
另外还要注意一个细节:如果你的输入tax是百分比数值(比如输入50代表50%的税率),那当前的计算逻辑setprice=(price*tax)+price会得到100*50+100=5100,这显然不符合实际预期。这种情况下应该把税费转换为小数再计算:setprice = price * (1 + tax / 100.0);,这样输入50的话,得到的就是100*(1+0.5)=150,符合正常的税费计算逻辑。
修正后的代码
#include <stdio.h> int main() { float setprice, price, tax; printf("enter price in dollars : \n"); scanf("%f", &price); printf("Enter the tax percentage: \n"); // 修改提示明确是百分比输入 scanf("%f", &tax); // 按百分比计算税费的版本 setprice = price * (1 + tax / 100.0); // 如果你的tax是直接输入小数税率(比如0.5代表50%),就用下面这行替换上面的 // setprice = price * tax + price; printf("total = %f\n", setprice); // 改为输出计算好的setprice return 0; }
测试示例
输入:
enter price in dollars : 100 Enter the tax percentage: 50
输出:
total = 150.000000
内容的提问来源于stack exchange,提问作者CloudMan
相关产品推荐
相关产品推荐

