在C中,如何让我五百分之一千二百= 3(In c , how do I make 1200 / 50

2019-09-18 12:38发布

在C中,如何让我500分之1200= 3。

我在做家庭作业。

航运计算器:迅速运输公司将在此基础上有多重,你是多远发送包裹运送您的包裹。 他们将只船小包装多达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

Answer 1:

你是不是想圆了? 分之前,您可以添加499所划分的数量。

(0 + 499)/ 500 - > 0

(1 + 499)/ 500 - > 1

(1200 + 499)/ 500 - > 3

这将全面上涨。



Answer 2:

说你要得到一个天花板师ab (在你的榜样a = 1200 B = 500 )。 你可以在这样的整数运算做到这一点。

result = (a + b - 1) / b;

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

result = (int) ceil( (double) a / b );

问题是,因为这是一门功课,你可以只让它在小的步骤:

if( a % b == 0 ) {
    result = a / b;
} else {
    result = a / b + 1;
}

这段代码的另一个优点是,它实际上不会溢出了太大a S,但这不是在这种情况下有关,我猜。



Answer 3:

我建议使用国防部和截断功能。 如果MOD出来零,它的罚款,否则截断并添加1。



Answer 4:

你必须使用除法的天花板。 这轮商到下一个整数。

所以,当你正在努力寻找的500英里的定数,你必须圆商到下一个整数。

或者,(和低效率),你可以通过增加里程数1 ,直到它被整除500 ......也就是说, while ( (q = x_miles++%500) != 0 ) {} 然后multipy q通过率来得到你的答案(这也是假设你将有英里的整数倍)。



Answer 5:

你也可以使用STDLIB DIV功能。 如果你只是想整数运算,特别要避免浮点运算,这可能是好的。

http://www.cplusplus.com/reference/clibrary/cstdlib/div/

#include <stdlib.h>

int foo(void)
{
  div_t result = div(1200, 500);
  return result.quot + (0 < result.rem); 
}


Answer 6:

[EDIT1]

从您的代码将实现如下这一部分:

if ( weight <= 5.6 )
{
    int multiplier = (int) miles / 500;

    if( ((int)miles % 500) > 0)
        multiplier++;

    rate370 = (double)multiplier * 3.7;

    printf("Your total cost : %.2lf\n", rate370);      
}

[原稿]在“整数土地”三分之一千二百应等于2。

它所“似乎”你想试试这个:

int multFiveHundreds = (int)totalWeight / 500;
if(multFiveHundreds % 500 > 0)
    multFiveHundreds++;


文章来源: In c , how do I make 1200 / 500 = 3
标签: c ceil