邂桨劲儿 2021-11-13 15:06 采纳率: 80%
浏览 45
已结题

这个我不知道哪里有错误,能不帮我看下嘛?

7-2 计算运费

实验三 选择结构程序设计

实验目的

学会使用关系运算符和关系表达式以及逻辑运算符和逻辑表达式。
熟练掌握if语句的使用。
熟练掌握switch语句的使用。

运输公司对用户计算运输费用。路程(skm)越远,每吨·千米运费越低。(分别用if语句和switch语句实现) 标准如下:

     s < 250                 没有折扣
 250<= s < 500               2%折扣
 500 <=s < 1000              5%折扣
1000 <=s < 2000              8%折扣
2000 <=s < 3000             10%折扣
3000 <=s                    15%折扣

请帮助商户老周计算一下本次的货物运到目的地需要交纳的运输费用。 提示:小数点后保留2位。
输入格式:

输入一行三个数据单价、重量和运输距离。
输出格式:

输出相应的运输费用。
输入样例:

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

100 20 300
结尾无空行

输出样例:

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

588000.00
结尾无空行

#include <stdio.h>
int main()
{
    int p,k;
    char s;
    float g;
    scanf("%d%d%c",&p,&k,&s);
    if(s<250)
    {
        g=s*p*k;
        printf("%.2f",g);
    }
    else if(s>=250)
    {
        switch(s)
        {
            case s<500:
            g=s*k*p*0.98;
            printf("%.2f",g);
            break;
            case s<1000:  
            g=s*k*p*0.95;
            printf("%.2f",g);
            break;
            case s<2000:
            g=s*p*k*0.92;
            printf("%.2f",g);
            break;
            case s<3000;
            g=s*k*p*0.9;
            printf("%.2f",g);
            break;
        }
    }
    else if(s>=3000)
    {
        g=s*k*p*0.85;
        printf("%.2f",g);
    }
    return 0;
}

  • 写回答

3条回答 默认 最新

  • 邂桨劲儿 2021-11-13 19:48
    关注
    
    #include <stdio.h>
    int main()
    {
        int p,k,s;
        float g;
        char type;
        scanf("%d%d%d%c",&p,&k,&s,&type);
        if (s<250)
        {
            type=0;
        } else if(s<500)
        {
            type=1;
        } else if(s<1000)
        {
            type=2;
        } else if(s<2000)
        {
            type=3;
        } else if(s<3000)
        {
            type=4;
        } else if(s>3000)
        {
            type=5;
        }
        switch(type)
        {
         case 0:
         g=s*k*p*1.00;
         printf("%.2f",g);
         break;
         case 1:
         g=s*k*p*0.98;
         printf("%.2f",g);
         break;
         case 2:  
         g=s*k*p*0.95;
         printf("%.2f",g);
         break;
         case 3:
         g=s*p*k*0.92;
         printf("%.2f",g);
         break;
         case 4:
         g=s*k*p*0.9;
         printf("%.2f",g);
         break;
         case 5:
         g=s*k*p*0.85;
         printf("%.2f",g);
         break;
        }
        return 0;
    }
    

    细节

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 已采纳回答 11月13日
  • 创建了问题 11月13日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题