重点在于路程区间的分析:
s<250:即(c>=0&&c<1),case 0:d=0
s>=250&&s<500:即(c>=1&&c<2),case1:d=0.02
s>=500&&s<1000:即(c>=2&&c<4),case2: 和case3: d=0.05
s>=1000&&s<2000:即(c>=4&&c<8),case4: case 5: case 6: case 7:d=0.08
s>=2000&&s<3000:即(c>=8&&c<12),case 8: case 9: case 10: case 11: d=0.1
s>=3000:即c>=12,case12:d=0.15
#include<stdio.h>
main()
{
int c;
float s,p,d,f,w;
scanf("%f,%f,%f",&s,&p,&w);
if(s>=3000)
c=12;
c=s/250;
switch(c)
{
case 0:d=0;break;
case 1:d=0.02;break;
case 2:
case 3:d=0.05;break;
case 4:
case 5:
case 6:
case 7:d=0.08;break;
case 8:
case 9:
case 10:
case 11:d=0,1;break;
case 12:d=0.15;break;
}
f=p*w*s*(1-d);
printf("总运费为:%f\n",f);
}