您的位置:首页 > 编程语言 > C语言/C++

邮政局计算寄往美国的国际物品快递资费

2014-12-02 18:11 281 查看
邮政局计算寄往美国的国际物品快递资费,其计费规则如下:为首重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++