在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
你是不是想圆了? 分之前,您可以添加499所划分的数量。
(0 + 499)/ 500 - > 0
(1 + 499)/ 500 - > 1
(1200 + 499)/ 500 - > 3
这将全面上涨。
说你要得到一个天花板师a
由b
(在你的榜样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,但这不是在这种情况下有关,我猜。
我建议使用国防部和截断功能。 如果MOD出来零,它的罚款,否则截断并添加1。
你必须使用除法的天花板。 这轮商到下一个整数。
所以,当你正在努力寻找的500英里的定数,你必须圆商到下一个整数。
或者,(和低效率),你可以通过增加里程数1
,直到它被整除500
......也就是说, while ( (q = x_miles++%500) != 0 ) {}
然后multipy q
通过率来得到你的答案(这也是假设你将有英里的整数倍)。
你也可以使用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);
}
[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++;