首页 > 解决方案 > 我需要帮助修复的代码中的边缘情况

问题描述

出于某种原因,我无法将代码格式化为代码,但在这里

我将里程设置为 /500 +1,所以我得到了 500 的多少次,并用它来计算运费。测试用例是:

1.5 磅,200 英里 - 1.5

5.6, 1200 - 11.10

1.0, 2500 - 7.50

8.5, 12345 - 133.75

12.8, 345 - “对不起……”

所有代码都有效,但测试用例 3 导致 9.00 而不是预期的 7.50,我需要帮助弄清楚如何让它工作。

就像我说的,出于某种原因,stackover flow 不允许我发布代码

在此处输入图像描述

标签: c

解决方案


我不确定我是否很好地理解了您的问题,但我认为您面临的主要问题是您试图找出一个数字中有多少个 500,并且处理所有特殊情况的更简单方法可能如下。

#include <math.h>
int main(){
    // ...
    int ship = ceil(miles / 500.0); // note 500.0 to cast the operation to double
    // ...
}

因此,如果英里数可以被 500 整除,它将产生一个不必加 1 的整数,否则将产生一个浮点数,该浮点数将四舍五入为较高的整数。


推荐阅读