PTA 7-8 计算运费

这是一个C语言程序,用于计算基于距离的货物运输费用。程序根据输入的基本运费、货物重量和行驶距离,应用不同阶段的折扣计算总运费。运费计算考虑了不同距离范围内的折扣率,输出结果精确到小数点后两位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运输公司对用户计算运费。路程(s)越远,每千米运费就越低。标准如下:

  • s<250km ,没有折扣;
  • 250km≤s<500km, 2%的折扣;
  • 500km≤s<1000km, 5%的折扣;
  • 1000km≤s<2000km,8%的折扣;
  • 2000km≤s<3000km,10%的折扣;
  • 3000km≤s,15%的折扣。

设每千米每吨货物的基本运费为p,货物重为 w,距离为s,折扣为d,则总运费f的计算公式为: f=p×w×s×(1-d)

输入格式:

在一行中以小数形式输入基本运费、货重和距离,以空格作为分隔符。

输出格式:

在一行输出计算出来的运费,精确到小数点后2位的值。

输入样例:

在这里给出一组输入。例如:

100 20 300

结尾无空行

输出样例:

在这里给出相应的输出。例如:

freight=588000.00

结尾无空行

#include<stdio.h>
int main()
{
    double p,w,s,f;
    scanf("%lf%lf%lf",&p,&w,&s);
    if(s<250)
        f=p*w*s;
    else if(s<500&&s>=250)
        f=p*w*s*(1-0.02);
    else if(s<1000&&s>=500)
        f=p*w*s*(1-0.05);
    else if(s<2000&&s>=1000)
        f=p*w*s*(1-0.08);
    else if(s<3000&&s>=2000)
        f=p*w*s*(1-0.1);
    else if(s>=3000)
        f=p*w*s*(1-0.15);
    printf("freight=%.2lf",f);
    return 0;
}

本人写此为期末复习用,如有问题请留言。

### 关于PTA 7-8 阶梯电价编程题解 #### 问题描述 为了提倡居民节约用电,某省电力公司执行“阶梯电价”。对于安装了一户一表的居民用户,电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的部分,电价上调至0.58元/千瓦时。程序需根据给定的月用电量计算应缴纳的电费。 #### 输入格式 输入文件仅有一行,包含一个整数N(0≤N),表示该用户的月用电量单位为千瓦时[^2]。 #### 输出格式 输出文件也只有一行,如果输入的电量大于等于零则输出对应的电费金额,精确到小数点后两位;如果输入的数值小于零,则输出`Invalid Value!` #### Python实现方案 下面是一个简单的Python函数来解决这个问题: ```python def calculate_electricity_bill(kwh): if kwh < 0: print("Invalid Value!") elif kwh <= 50: cost = round(kwh * 0.53, 2) print(f"{cost:.2f}") else: base_cost = 50 * 0.53 extra_kwh = kwh - 50 additional_cost = extra_kwh * 0.58 total_cost = base_cost + additional_cost print(f"{total_cost:.2f}") # 假设从标准输入获取数据 if __name__ == "__main__": try: usage = int(input().strip()) calculate_electricity_bill(usage) except ValueError: print("Invalid Value!") ``` 此代码首先定义了一个名为`calculate_electricity_bill` 的函数用于处理不同情况下的电费计算逻辑,并通过条件语句判断输入的有效性和适用哪个计费规则。最后,在主程序中尝试读取用户输入并调用上述函数完成最终的结果输出。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值