DArkDecay 2021-11-15 22:40 采纳率: 100%
浏览 61
已结题

PTA c++题死活写不出来该怎么写?vs2019运行能得到正确结果

设计简单的飞机行李托运计费系统。假设飞机上个人托运行李的条件是: 行李在20公斤以下 免费托运(输出:您可以免费托运行李!) 2030公斤 超出部分5元/公斤; 3040公斤 超出部分10元/公斤; 40~50公斤 超出部分15元/公斤; (输出:您的托运费用为*元!) 50公斤以上不允许个人携带。 输出:您托运的行李超出了最高上限,不允许托运!
输入样例:
30
输出样例:
请输入您行李的重量!您的托运费用为50.000000元!

#include <stdio.h>
int main()
{
    int i,lug;
    float ch;
    printf("请输入您行李的重量!");
    scanf("%d",&lug);
    i = lug/10;
    switch (i)
    {
    case 0: 
    case 1:
    printf("您可以免费托运行李!");break;
    case 2:
            {
                if (lug==20)
    {
        printf("您可以免费托运行李!");
    }
          else 
       {
        ch = (lug-20)*5; printf("您的托运费用为%f元!",ch); break;
       }
    }
    case 3:
            {
             if(lug==30)
            {
                ch = (lug-20)*5; printf("您的托运费用为%f元!",ch); break;
            }
            else
            {
        ch = (lug-20)*10; printf("您的托运费用为%f元!",ch); break;
            }
    }
    case 4:{
        if(lug==40)
    {
        ch = (lug-20)*10; printf("您的托运费用为%f元!",ch); break;
    }
            else
      {
        ch = (lug-20)*15; printf("您的托运费用为%f元!",ch); break;
           }
    }
        case 5:
            {
                if(lug==50)
     {
         ch = (lug-20)*15;printf("您的托运费用为%f元!", ch); break;
     }
            else if(lug >50)
            {
                printf("您托运的行李超出了最高上限,不允许托运!");break;
            }
            }
        default: printf("您托运的行李超出了最高上限,不允许托运!");
    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 关注

    30-40公斤 超出部分10元/公斤这种,应该是计算超出20部分+超出30的部分,不应该直接计算超出30部分。
    代码修改如下:

    #include <stdio.h>
    int main()
    {
        int i,lug;
        float ch;
        printf("请输入您行李的重量!");
        scanf("%d",&lug);
        i = lug/10;
        switch (i)
        {
        case 0: 
        case 1:
            printf("您可以免费托运行李!");break;
        case 2:
            {
                if (lug==20)
                {
                    printf("您可以免费托运行李!");
                }
                else 
                {
                    ch = (lug-20)*5; printf("您的托运费用为%f元!",ch); break;
                }
            }
        case 3:
            {
                //if(lug==30)
                //{
                //    ch = (lug-20)*5; printf("您的托运费用为%f元!",ch); break;
                //}
                //else
                //{
                    ch = 10 * 5 +(lug-30)*10; printf("您的托运费用为%f元!",ch); break;
                //}
            }
        case 4:{
            //if(lug==40)
            //{
            //    ch = 10*5 + 10*10; printf("您的托运费用为%f元!",ch); break;
            //}
            //else
            //{
                ch = 10*5 + 10*10+(lug-40)*15; printf("您的托运费用为%f元!",ch); break;
            //}
               }
        case 5:
            {
                if(lug==50)
                {
                    ch = 10*5 + 10*10+(lug-40)*15;printf("您的托运费用为%f元!", ch); break;
                }
                else if(lug >50)
                {
                    printf("您托运的行李超出了最高上限,不允许托运!");break;
                }
            }
        default: printf("您托运的行李超出了最高上限,不允许托运!");
        }
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月24日
  • 已采纳回答 11月16日
  • 创建了问题 11月15日

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c