**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
4天前关闭。
Improve this question
我已经
float AddVat(float price, int category)
float total_price=0;
我需要写函数,计算和返回包括增值税的总价(使用switch
/case
没有scanf
,为初学者)
VAT category:
1 - 20%
2 - 20%
3 - 20%
4 - 15%
5 - 8%
6 - 0%
我试着把价格乘以一个百分比。
我想知道如何找到解决办法。
1条答案
按热度按时间mwg9r5ms1#
如果你想返回价格+增值税,你可以这样做:
和输出:
我知道这是学校的作业,但你应该知道这是一个bad idea to use float for money。
Value-Added Tax (VAT)与销售税的作用不同,我们在这里只实施了后者。假设这是一家公司,所以你需要扣除他们支付的增值税,并计算净负债。它通常是一个统一的税率等。
像你的(类别,增值税百分比)表这样的比率表在现实世界中会发生变化,所以你希望它是数据而不是代码。第一步是这样的:
下一步是将vat数组存储在数据库或文件中,而不是存储在数组中,然后在需要时在运行时查找它:
Category使用整数建模,因此您可以如下调用函数:
但是错误地交换参数非常容易,编译器甚至可能不会生成警告:
枚举、常量或结构体是对vat建模的更好选择。只有后者才能在运行时加载数据,因此可能和更改查找函数:
呼叫现在变为:
最后,像我那样合并输出和误差域是有问题的。也许退款在未来的某个时间点会被表示为负值。有关讨论,请参见error handling in c。