ls1422470416 发表于 2019-5-3 12:04:37

看很久也没发现问题 老哥们帮帮找找错误

#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 );
}

ls1422470416 发表于 2019-5-3 12:05:25

运输公司对用户计算运费。路程(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)

ls1422470416 发表于 2019-5-3 12:06:30

可以运行 但是输出的结果感觉是乱码

HUMMER军 发表于 2019-5-3 18:37:54

问题出在if语句的条件那
应该是if(c==0)

可以写成if(0==c) 常量写在前 变量写在后面,这样会避免出错

HUMMER军 发表于 2019-5-3 18:38:42

#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;
}

暗pluto 发表于 2019-5-4 13:33:20

如楼上所说,在C语言中“=”不是等于号,而是赋值,c=0是把0赋值给c,‘=="才是等于号,相当于equal
页: [1]
查看完整版本: 看很久也没发现问题 老哥们帮帮找找错误