PTA( 出租车计价)——C语言)细解

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

  • 起步里程为3公里,起步费10元;
  • 超起步里程后10公里内,每公里2元;
  • 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
  • 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

输入格式:

输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。

输出格式:

在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。

输入样例1:

2.6 2

输出样例1:

10

输入样例2:

5.1 4

输出样例2:

14

输入样例3:

12.5 9

输出样例3:

34

题目分析:第一种情况:公里数在起步范围内,等待时间小于5;

第二种情况:公里数在起步范围外,等待时间大于5;

第三种情况:公里数在起步范围外但不超过10公里,等待时间小于5;

第四种情况:公里数在起步范围外但不超过10公里,等待时间大于5;

第五种情况:公里数在起步范围外且超过10公里,等待时间小于5;

第六种情况:公里数在起步范围外且超过10公里,等待时间大于5;

同时还要考虑等待时间等于5的测试点。

程序实现如下:

#include <stdio.h>
int rount(float x); \\四舍五入函数
int main(){
    int minute;
    float kilometer,price=0;
    scanf("%f %d",&kilometer,&minute);
    if(kilometer>0)
    {
        if(minute>5){
             while(minute>0){
                 price+=2;
                 minute/=5.0;
             }
        }
        else if(minute==5)
        {
             price+=2;
        }else{}
        
       
        price=price+10;
    }
    kilometer=kilometer-3;
    if(kilometer>0&&kilometer<=10){
        price=price+2*rount(kilometer);
    }else if(kilometer>10){
        price=price+20;
    }else{} 
    kilometer=kilometer-10;
    if(kilometer>0){
        price=price+3*rount(kilometer);
    }
    printf("%.0f\n",price);
    return 0;
}
int rount(float x)
{
    int y=(int)x;
    if(x-(int)x>=0.5){
        return y+1;
    }else{
     return y;
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值