看很久也没发现问题 老哥们帮帮找找错误
#include <stdio.h>void main()
{
int c,s;
float p,w,f,d;
scanf("%f,%f,%d",&p,&w,&s);
c=s/250;
if(c=0)
{
d=0;
}
else if(c<2)
{
d=2;
}
else if(c<4)
{
d=5;
}
else if(c<8)
{
d=8;
}
else if(c<12)
{
d=10;
}
else
{
d=15;
}
f=p*w*s*(1-d/100.0);
printf("sajjpda=%.4f",f );
} 运输公司对用户计算运费。路程(S)越远,每公里运费越低。标准如下: s<250km 没有折扣
250≤S<500 2%折扣 500≤S<1000 5%折扣 1000≤S<2000 8%折扣
2000≤S<3000 10%折扣 3000≤S 15%折扣
设每公里每吨货物的基本运费为P(Price的缩写),货物重为w(weight的缩写),距离为S,折扣为d(discount的缩写),则总运费f(freight的缩写)的计算公式为f=P*w*S*(1-d) 可以运行 但是输出的结果感觉是乱码
问题出在if语句的条件那
应该是if(c==0)
可以写成if(0==c) 常量写在前 变量写在后面,这样会避免出错 #include <stdio.h>
int main()
{
int c,s;
float p,w,f,d;
scanf("%f,%f,%d",&p,&w,&s);
c=s/250;
if(c==0)
{
d=0;
}
else if(c<2)
{
d=2;
}
else if(c<4)
{
d=5;
}
else if(c<8)
{
d=8;
}
else if(c<12)
{
d=10;
}
else
{
d=15;
}
f=p*w*s*(1-d/100.0);
printf("sajjpda=%.4f",f );
return 0;
} 如楼上所说,在C语言中“=”不是等于号,而是赋值,c=0是把0赋值给c,‘=="才是等于号,相当于equal
页:
[1]