
哪位高手帮忙看看这个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);
} 展开
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);
} 展开
3个回答
展开全部
输入语句scanf("%f,%f,%d",&p,&w,&s);
你写的输入格式是 %f,%f,%d 所以你输入的时候,数据只能是逗号,否则就错误。
一般情况输入语句改为scanf("%f%f%d",&p,&w,&s); 这样输入的时候就可以用空格隔开。
你写的输入格式是 %f,%f,%d 所以你输入的时候,数据只能是逗号,否则就错误。
一般情况输入语句改为scanf("%f%f%d",&p,&w,&s); 这样输入的时候就可以用空格隔开。
更多追问追答
追问
我刚刚把逗号去掉了,这样就可以了,可是加上逗号的话我输入数据的时候也加有逗号为什么输出的结果不对啊?
追答
应该还是你输入的时候格式不对吧,加上逗号也应该能输入的,你看看谭浩强哪本数讲的输入语句。
展开全部
呵呵,用WIN_TC帮你编译了一下,没有什么错误啊!只是我觉得这个程序的循环中,C的值只有到11,那12的呐?即当if(s>=3000)c=12;成立的时候,d的值该等于多少呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
switch 语句里面漏了个case 12,所以每次把距离设为3000以上就会报错
或者你加个default也行
或者你加个default也行
追问
输入1,1,1结果却是输出了一个很大的数。。。
追答
我复制了你的程序运行,输入1,1,1好像没有问题啊~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询