甜羊羊. 2023-09-09 08:11 采纳率: 43.5%
浏览 2
已结题

1102: 快递费[Delivery Fee]

1102: 快递费[Delivery Fee]

题目描述
圣诞节要到了,小知想给在外地的朋友寄一份礼物,于是来到快递公司询问价格。价格属于分段计价,如果重量不到5kg,则需要8元;如果重量不超过10kg且达到5kg,每公斤1.6元;如果重量超过10kg,每公斤1.5元。现在小知准备的礼物重量为a,请问小知需要付多少钱?(1<=a<=50)
输入
一个整数a,表示小知礼物的重量

输出
小知需要付的快递费用,保留一位小数

如果输入15输出就是15*1.5=22.5
但是我写的输出就是23.5

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int weight;
    cin >> weight;

    double cost;

    if (weight <= 5) {
        cost = 8.0;
    } else if (weight <= 10) {
        cost = 8.0 + (weight - 5) * 1.6;
    } else {
        cost = 8.0 + 5 * 1.6 + (weight - 10) * 1.5;
    }

    cout << setiosflags(ios::fixed) << setprecision(1) << cost << endl;

    return 0;
}

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-09-09 09:07
    关注

    关键是题目怎么理解,是超出部分按照低费率,10kg以内按照1.6 还是说整体按照1.5
    如果是后者,那么代码是

    #include <iostream>
    #include <iomanip>
    using namespace std;
     
    int main() {
        int weight;
        cin >> weight;
     
        double cost;
     
        if (weight <= 5) {
            cost = 8.0;
        } else if (weight <= 10) {
            cost = weight * 1.6;
        } else {
            cost = weight * 1.5;
        }
     
        cout << setiosflags(ios::fixed) << setprecision(1) << cost << endl;
     
        return 0;
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 已采纳回答 9月9日
  • 创建了问题 9月9日