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

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;
}


#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;
}

细节


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

#include <stdio.h>
int main()
{
    int p, k, s;
    float g;
    int type;
    scanf("%d%d%d",&p,&k,&s);
    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;
            printf("%2.f", 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;
}