woshidashen 发表于 2016-1-19 22:15:40

这道题我这么写有什么问题啊 运行不起

路程(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)
#include <stdio.h>

void main()
{
   double f, p, w, s, d;
   printf("请输入货物重,距离,每吨货物基本运费:");
   scanf("%lf%lf%lf", w, s, p);
   if(s<250)
           d=0;
   else if(s>250||s==250 && s<500)
           d=0.02;
   else if(s>500||s==500 && s<1000)
           d=0.05;
   else if(s>1000||s==1000 && s<2000)
           d=0.08;
   else if(s>2000||s==2000 && s<3000)
           d=0.1;
   else
           d=0.15;
   f=p*w*s*(1-d);
   printf("总运费%lf", f);
}

黑龍 发表于 2016-1-20 08:43:11

scanf("%lf%lf%lf", w, s, p);
改为
scanf("%lf%lf%lf", &w, &s, &p);

ligen超越 发表于 2016-1-20 10:16:28

重要的事情要说三遍{:10_257:}
注意代码格式!注意代码格式!注意代码格式!
#include <stdio.h>

int main()
{
   double f, p, w, s, d;
   printf("请输入货物重,距离,每吨货物基本运费:");
   scanf("%lf%lf%lf", &w, &s, &p);
   if(s<250){
                   d=0;
   }else if(s>=250 && s<500){
                   d=0.02;       
   }else if(s>=500 && s<1000){
                   d=0.05;
   }else if(s>=1000&& s<2000){
                   d=0.08;
   }else if(s>=2000 && s<3000){
                   d=0.1;
   }else{
                   d=0.15;
   }
        f=p*w*s*(1-d);      
        printf("\n");
        printf("总运费%.3lf", f);
        return 0;
}

woshidashen 发表于 2016-1-20 17:44:27

黑龍 发表于 2016-1-20 08:43
改为

恍然大悟谢谢

woshidashen 发表于 2016-1-20 17:44:58

ligen超越 发表于 2016-1-20 10:16
重要的事情要说三遍
注意代码格式!注意代码格式!注意代码格式!

谢谢   {:5_97:}
页: [1]
查看完整版本: 这道题我这么写有什么问题啊 运行不起