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
为什么错了啊?????没有提示错误
初学,求详细解说~~~~~ 展开
路程(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
为什么错了啊?????没有提示错误
初学,求详细解说~~~~~ 展开
3个回答
展开全部
#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;
}
展开全部
int p,w,s,d,f;
改成
int p,w,s;
double d,f;
最后
printf("总运费是%d\n",f);
改为printf("总运费是%lf\n",f);
改成
int p,w,s;
double d,f;
最后
printf("总运费是%d\n",f);
改为printf("总运费是%lf\n",f);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
15/100 = 0, 写成 15.0/100
d 应该是浮点数,否则上面的写法会被截断为 0
追问
加了.0还是15000000
追答
double d;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询