445519014 发表于 2021-3-9 16:09:32

c语言计算运费问题

本帖最后由 445519014 于 2021-3-9 20:45 编辑

我觉得这程序没有问题啊,然后就是计算出来的结果总运费f一直都是不打折扣的,不知道怎么了,我这好像也把折扣赋值给d了啊,求大神指教,谢啦

题目:
路程( s)越远,每公里运费越低。标准如下:
s<250km               没有折扣
250≤s<500            2%折扣
500≤s<1000            5 %折扣
1000≤s<2000          8 %折扣
2000≤s<3000      10%折扣
3000≤s                   15%折扣
设每公里每吨货物的基本运费为p,货物重量为w,路程为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d)

#include<stdio.h>
void main()
{
    double p,w,s,d,f;
    printf("依次输入基本运费、货物重量和路程\n");
    scanf("%lf%lf%lf",&p,&w,&s);
    f=p*w*s*(1-d);
    if(s<500)
{
      switch(s<250?1:2)
      {
      case 1:
            d=0;
            break;
      case 2:
            d=2/100.0;
            break;
      }
}
    else if(500<=s<2000)
{       switch(s<1000?1:2)
      {
      case 1:
            d=5/100.0;
            break;
      case 2:
            d=8/100.0;
            break;
      }
}
    else if(2000<=s<3000)
    {
      d=10/100.0;
    }
    else if(s>=3000)
    {
      d=15/100.0;
    }
    printf("总运费 =%9.3lf",f);
}

巴巴鲁 发表于 2021-3-9 16:48:40

printf("总运费 =%9.3lf",f);
你这里输出的就是总运费,没有减去折扣

445519014 发表于 2021-3-9 18:11:53

本帖最后由 445519014 于 2021-3-9 18:13 编辑

巴巴鲁 发表于 2021-3-9 16:48
你这里输出的就是总运费,没有减去折扣

可是上面我已经用了f=p*w*s*(1-d);了啊

巴巴鲁 发表于 2021-3-9 18:30:57

445519014 发表于 2021-3-9 18:11
可是上面我已经用了f=p*w*s*(1-d);了啊

你在上面用有什么用
求完d之后再用啊{:10_277:}

445519014 发表于 2021-3-9 20:26:20

巴巴鲁 发表于 2021-3-9 18:30
你在上面用有什么用
求完d之后再用啊

妙啊{:10_279:},已经正常了{:10_279:}{:10_279:}{:10_279:}
谢谢大佬指教

巴巴鲁 发表于 2021-3-9 20:34:49

445519014 发表于 2021-3-9 20:26
妙啊,已经正常了
谢谢大佬指教

没有没有,刚开始看错了
页: [1]
查看完整版本: c语言计算运费问题