邮政局计算寄往美国的国际物品快递资费,其计费规则如下:为首重1斤,基本资费240元;续重每斤75元;总重量超过20斤(包括20斤),运费有8折优惠。请编写一计算程序,输入重量,输出资费。
【实现提示】:
输入的重量以斤为单位,且允许有小数,不为整斤重量时,需取上整数计算资费。
【测试数据】
|
重量(斤) |
0.5 |
1 |
1.5 |
2 |
20 |
25 |
25.5 |
|
资费(元) |
240 |
240 |
315 |
315 |
1332 |
1632 |
1692 |
我的之前的答案:
#include<iostream>
using namespace std;
int main()
{
double weight=0,money=0;
cout<<"请输入您需要邮寄的物件重量(斤)"<<endl;
cin>>weight;
if(weight<=1)
{
money=240;
}
else if(weight>1&&weight<20)
{
money=240+(weight-1)*75;
}
else
{
money=(240+(weight-1)*75)*0.8;
cout<<"运费为:"<<money<<"元"<<endl;
return 0;
}我修改后的答案:
#include<iostream>
using namespace std;
int main()
{
double weight=0,money=0;
cout<<"请输入您需要邮寄的物件重量(斤)"<<endl;
cin>>weight;
if(int(weight)!=weight)
{
weight=int(weight)+1.0;
}
if(weight<=1)
{
money=240;
}
else if(weight>1&&weight<20)
{
money=240+(weight-1)*75;
}
else
{
money=(240+(weight-1)*75)*0.8;
}
cout<<"运费为:"<<money<<"元"<<endl;
return 0;
}我第一次写错的原因在于,不懂得如何处理当超出部分不满1斤时按1斤算。一直以为需要用到某个函数。。。
其实就是简单的,要是当整型的weight不等于双精度浮点型的weight时,就说明这时候的重量不是刚刚好是整数了,这时候就要加1.0了
输入25.5斤时的运行结果:

本文介绍了一个使用C++编写的程序,用于计算邮寄到美国的国际物品快递资费。程序根据首重、续重及折扣规则计算总费用,并通过输入重量输出相应的资费金额。
7768

被折叠的 条评论
为什么被折叠?



