C#计算鱼缸容水量代码输出错误,多次修改公式仍无效求排查
鱼缸容水量计算代码问题排查
现有代码错误点
- 单位换算逻辑错误:1升 = 1立方分米 = 1000立方厘米,因此立方厘米转升需要乘以
0.001,原代码写的000.1实际是0.1,换算结果偏差100倍。 - 可用容积计算逻辑混乱:原代码重复计算可用比例,还混用立方厘米、升两种单位做运算,导致结果完全不符合预期。
正确计算逻辑
- 计算鱼缸总容积(立方厘米):
长 * 宽 * 高 - 总容积转升:
总容积 / 1000 - 扣除占用比例后可用水量:
总升数 * (1 - 占用百分比 / 100)
修正后代码
using System; namespace FishTank { class Program { static void Main(string[] args) { int length = int.Parse(Console.ReadLine()); int width = int.Parse(Console.ReadLine()); int hight = int.Parse(Console.ReadLine()); double percent = double.Parse(Console.ReadLine()); // 计算总容积(立方厘米) double aqariumVol = length * width * hight; // 立方厘米转升 double totalLiters = aqariumVol * 0.001; // 扣除占用比例得到可用水量 double litersNeeded = totalLiters * (1 - percent / 100.0); Console.WriteLine(litersNeeded); } } }
测试用例验证
输入长85、宽75、高47、占用17时:
总容积 = 857547 = 299625 立方厘米
总升数 = 299625 * 0.001 = 299.625 升
可用水量 = 299.625 * 0.83 = 248.68875,和预期输出一致。
内容的提问来源于stack exchange,提问作者iMPr3S1vEEE
相关产品推荐
相关产品推荐

