在c中,我如何使1200/500 = 3

Aus*_*rau 0 c ceil

在C中,我如何使1200/500 = 3.

我正在做家庭作业.

运输计算器:Speedy Shipping公司将根据您的包装重量以及您送包裹的距离来运送您的包裹.他们只会运送重达10磅的小包装.您需要有一个程序来帮助您确定他们将收取多少费用.费用基于每运送500英里.它们不是按比例分配的,即600英里与900英里的费用相同.

这是他们给你的表:

Package Weight--------------------------Rate per 500 miles shipped

2 pounds or less------------------------$1.50

More than 2 but not more than 6---------$3.70

More than 6 but not more than 10--------$5.25

这是一个测试用例.

测试用例数据:

重量:5.6磅
英里:1200英里

预期成绩:

您的运费是11.10美元


我的答案一直持续到7.40

Dan*_*iel 12

你想要围捕吗?在分割之前,您可以将499添加到正在分割的数字.

(0 + 499)/ 500 - > 0

(1 + 499)/ 500 - > 1

(1200 + 499)/ 500 - > 3

这将圆满.

  • @ C0deH4cker:这是同样的事情,你不必全神贯注于类型转换. (3认同)

unk*_*ulu 6

说你要得到一个天花板师a通过b(在你的榜样a = 1200B = 500).你可以用这样的整数运算来做.

result = (a + b - 1) / b;
Run Code Online (Sandbox Code Playgroud)

或者你可以使用浮点数并像这样做(可能是一个坏主意)

result = (int) ceil( (double) a / b );
Run Code Online (Sandbox Code Playgroud)

问题在于,由于这是一项功课,您可以通过小步骤进行补充:

if( a % b == 0 ) {
    result = a / b;
} else {
    result = a / b + 1;
}
Run Code Online (Sandbox Code Playgroud)

这段代码的另一个优点是它实际上不会因为太大而溢出a,但我认为这与这种情况无关.