简单编程改错!高手教教我啊 !

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:07:37
运输公司对用户计算运费。路程(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)。
main()

int c,S;
float P,w,d,f;
scanf("%f,%f,%d",&P,&w,&S) ;
if(S>=3000) c=12;
else c=S/250;
switch(c)

case0:d=0;break;
case1:d=2;break;
case2:
case3:d=5;break;
case4:
case5:
case6:
case7:d=8;break;
case8:
case9:
case10:
case11:d=10;break;
case12:d=15;break;

f=P*w*S*(1-d/100.0);
printf("freight=%15.4f",f);

哪里错了啊 1!!

int c,S;
float P,w,d,f; 换成(d是整数)
int c,d,S;
float P,w,f;

还有这两行
if (S>=3000) c=12;
else c=S/250;
这两行不要,在java中这个if else是废话。直接换成
c=%(S/250);
还有你这中间case里面很多分号不规矩,要全用英文输入的分号。
其实用几个嵌套if语句几下搞定啦。

void main()
{
int c,d,S;
float P,w,f;
scanf("%f,%f,%d",&P,&w,&S);
c=%(S/250);

if (c =0) d=0;
elseif (c =1) d =2;
elseif (c <=3) d =5;
elseif (c <8) d =8;
elseif (c <12) d =10;
else d=15;

f=P*w*S*(1-d/100.0);
printf("freight=%15.4f",f);

}

直接复制了你的代码,编译后发觉很多错,归结为2种:
1、代码中的标点符号应为半角,即在英文输入法下的标点符号,而不是全角
2、case后要有空格,你的代码里没有,导致频频报错

下面是我改好的代码,运行正常。
#include <stdio.h>
void main()
{
int c,S;
float P,w,d,f;
scanf("%f,%f,%d",&P,&w,&S);
if(S>=3000) c=12;<