c语言 运输公司对用户计算运费
C基础编程题目:运输公司对用户计算运费,距离越远每公里运费越低,标准如下:s<250 没有折扣,
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).试编程计算货物运费。
我的代码 1 error:switch expression not integral
请指出错误
# include<stdio.h>
void main()
{
float p, w, s, d, f;
f = p * w * s * (1 - d);
printf("基本运费元/公里p=,货物重量w=, 距离s=\n");
scanf("%f%f%f",&p, &w, &s);
printf("基本运费%f元/公里,货物重量w=%f t, 距离s=%f km\n",p, w, s);
switch (s)
{
case s<250:
printf("d =0\n");
break;
case s<=250 && s < 500:
printf("d =0.02\n");
break;
case s >= 500 && s < 1000:
printf("d = 0.05\n");
break;
case s<2000 && s >= 1000:
printf("d =0.08\n");
break;
case s>2000 && s <= 3000:
printf("d =0.1\n");
break;
case s > 30000:
printf("d =0.15\n");
break;
default:
printf("error");
}
printf("%f:\n",f);
}
case s<250:
switch要求case后面跟的是一个数而不是表达式 我改好了
# include<stdio.h>
void main()
{
float p, w, s, d, f;
f = p * w * s * (1 - d);
printf("基本运费元/公里p=,货物重量w=, 距离s=\n");
scanf("%f%f%f",&p, &w, &s);
printf("基本运费%f元/公里,货物重量w=%f t, 距离s=%f km\n",p, w, s);
if (s<250)
d =0;
else if (s<=250 && s < 500)
d =0.02;
else if (s >= 500 && s < 1000)
d = 0.05;
else if (s<2000 && s >= 1000)
d =0.08;
else if (s>2000 && s <= 3000)
d =0.1;
else
d =0.15;
printf("折扣d=%f折\n",(1-d)*10);
f = p * w * s * (1 - d);
printf("费用=%f:\n",f);
}
页:
[1]