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 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题