c - 我需要帮助修复的代码中的边缘情况
问题描述
出于某种原因,我无法将代码格式化为代码,但在这里
我将里程设置为 /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 不允许我发布代码
解决方案
我不确定我是否很好地理解了您的问题,但我认为您面临的主要问题是您试图找出一个数字中有多少个 500,并且处理所有特殊情况的更简单方法可能如下。
#include <math.h>
int main(){
// ...
int ship = ceil(miles / 500.0); // note 500.0 to cast the operation to double
// ...
}
因此,如果英里数可以被 500 整除,它将产生一个不必加 1 的整数,否则将产生一个浮点数,该浮点数将四舍五入为较高的整数。
推荐阅读
- python - 将大量字典转换为 float32 DataFrame
- spring-boot - org.hibernate.exception.DataException:无法在 Spring Boot 和 Data JPA 中执行查询
- c# - 所有路径都不返回值
- r - 使用函数中的其他列数据在 R 中创建列
- flutter - 通过 WIFI 进行颤振打印
- latex - 乳胶网址未格式化
- leaflet - leaflet draw large number of icon marker
- swift - 在我的文本附加到我的 tableView 之前,我的按钮必须被点击两次
- java - 无法使用 GrantedAuthority 字段保存对象(不存在创建者,如默认构造)
- python - 如何使用“with”语句正确初始化对象?