写了一个小甲鱼老师的课后习题,计算运费,不知道哪里错了,计算结果不正确,但程....
{:5_100:}/*运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:s < 250km 没有折扣;250 <= s <500 2%折扣;
500<= s <1000 5%折扣;
1000 <= s <20008%折扣;
2000 <= s <300010%折扣;
3000 <= s 15%折扣;
设每公里货物的基本运费为p,货物重为w,距离为s,折扣为d
则总运费f的计算公式为:f=p*w*s*(1-d)*/
#include <stdio.h>
#include <math.h>
void main()
{
int c,s;
float d,p,w,f;
printf("input three numbers : ");
scanf("%f %f %f ",&p,&w,&s);
if(s<250)
c=1;
else if((250 ==s || 250 < s) && s < 500)
c=2;
else if((500 == s || 500 < s) && s < 1000)
c=3;
else if((1000 == s || 1000 < s) && s < 2000)
c=4;
else if((2000 == s || 2000 < s) && s < 3000)
c=5;
else
c=6;
switch(c)
{
case 1:
d=0;
break;
case 2:
d=2;
break;
case 3:
d=5;
break;
case 4:
d=8;
break;
case 5:
d=10;
break;
case 6:
d=15;
break;
}
f=p*w*s*(1-d/100.0);
printf("freight=%f\n",f);
}//程序错误
错误信息呢 本帖最后由 g1063496360 于 2021-4-18 15:29 编辑
#include <stdio.h>
#include <math.h>
void main()
{
int c,s;
float d,p,w,f;
printf("input three numbers : ");
scanf("%f%f%d",&p,&w,&s);
if(s<250)
c=1;
else if((250 ==s || 250 < s) && (s < 500))
c=2;
else if((500 == s || 500 < s) && (s < 1000))
c=3;
else if((1000 == s || 1000 < s) && (s < 2000))
c=4;
else if((2000 == s || 2000 < s) && (s < 3000))
c=5;
else
c=6;
switch(c)
{
case 1:
d=0;
break;
case 2:
d=2;
break;
case 3:
d=5;
break;
case 4:
d=8;
break;
case 5:
d=10;
break;
case 6:
d=15;
break;
}
f=p*w*s*(1-d/100);
printf("freight=%f\n",f);
}
你定义S 是整型的 用%d就好 还有输入你%f%f最好就不要空格了 不要你要多输几次空格
页:
[1]