c语言问题,求大神指教!!!!!!!

例5.7运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:s<250km没有折扣250≤s<5002%折扣500≤s<10005%折扣1000≤s<200... 例5.7 运输公司对用户计算运费。
路程(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()
{
int p,w,s,d,f;
scanf("%d,%d,%d",&p,&w,&s);
if(s>=3000)
d=15/100;
else if(s>=2000)
d=10/100;
else if(s>=1000)
d=8/100;
else if(s>=500)
d=5/100;
else if(s>=250)
d=2/100;
else
d=0;
f=p*w*s*(1-d);
printf("总运费是%d\n",f);
}

我输入100,100,1500
出来的结果是15000000
为什么错了啊?????没有提示错误
初学,求详细解说~~~~~
展开
 我来答
xoaxa
2014-02-13 · TA获得超过8605个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3374万
展开全部
#include <stdio.h>
int main() {
double p,w,s,d,f;
scanf("%lf%lf%lf",&p,&w,&s);
if(s >= 3000) d = 0.15;
else if(s >= 2000) d = 0.10;
else if(s >= 1000) d = 0.08;
else if(s >= 500) d = 0.05;
else if(s >= 250) d = 0.02;
else d = 0;
f = p*w*s*(1 - d);
printf("总运费是%lf\n",f);
return 0;
}
占座专用ID
2014-02-13 · TA获得超过235个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:198万
展开全部
int p,w,s,d,f;

改成
int p,w,s;
double d,f;

最后
printf("总运费是%d\n",f);

改为printf("总运费是%lf\n",f);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宛莹2T
2014-02-13 · TA获得超过427个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:360万
展开全部
  1. 15/100 = 0, 写成 15.0/100

  2. d 应该是浮点数,否则上面的写法会被截断为 0

追问
加了.0还是15000000
追答
double d;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式