哪位高手帮忙看看这个C语言程序哪里错了!运行的结果不对啊!

#include<stdio.h>voidmain(){intc,s;floatp,w,d,f;printf("pleaseenterprice,weight,dista... #include<stdio.h>
void main()
{int c,s;
float p,w,d,f;
printf("please enter price,weight,distance:");
scanf("%f,%f,%d",&p,&w,&s);
if(s>=3000)c=12;
else c=s/250;
switch(c)
{
case 0:d=0;break;
case 1:d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7:d=8;break;
case 8:
case 9:
case 10:
case 11:d=10;break;
}
f=p*w*s*(1-d/100.0);
printf("freight=%10.2f\n",f);
}
展开
 我来答
306712241
2012-04-25 · TA获得超过2512个赞
知道小有建树答主
回答量:890
采纳率:100%
帮助的人:320万
展开全部
输入语句scanf("%f,%f,%d",&p,&w,&s);
你写的输入格式是 %f,%f,%d 所以你输入的时候,数据只能是逗号,否则就错误。
一般情况输入语句改为scanf("%f%f%d",&p,&w,&s); 这样输入的时候就可以用空格隔开。
更多追问追答
追问
我刚刚把逗号去掉了,这样就可以了,可是加上逗号的话我输入数据的时候也加有逗号为什么输出的结果不对啊?
追答
应该还是你输入的时候格式不对吧,加上逗号也应该能输入的,你看看谭浩强哪本数讲的输入语句。
Q奇闻社
2012-04-25 · TA获得超过623个赞
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:62.7万
展开全部
呵呵,用WIN_TC帮你编译了一下,没有什么错误啊!只是我觉得这个程序的循环中,C的值只有到11,那12的呐?即当if(s>=3000)c=12;成立的时候,d的值该等于多少呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
doruins
2012-04-27
知道答主
回答量:18
采纳率:0%
帮助的人:16万
展开全部
switch 语句里面漏了个case 12,所以每次把距离设为3000以上就会报错
或者你加个default也行
追问
输入1,1,1结果却是输出了一个很大的数。。。
追答
我复制了你的程序运行,输入1,1,1好像没有问题啊~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式