§黑暗-幽灵 发表于 2012-3-1 20:55:36

我不知道这个程序有什么问题???????????

#include <stdio.h>
void main()
{
         double p,w,s,f;
         printf("请依此输入基本运费,物重,路程:");
         scanf("%lf%lf%lf",&p,&w,&s);
         if(s<250)
         {
               f=p*w*s;
         }
         else
         {
               if(s=250 && 250<s<500)
               {
                         f=p*w*s*(1-0.02);
               }
               else
               {
                         if(s=500 && 500<s<1000)
                         {
                                 f=p*w*s*(1-0.05);
                         }
                         else
                         {
                                 if(s=1000 && 1000<s<2000)
                                 {
                                       f=p*w*s*(1-0.08);
                                 }
                                 else
                                 {
                                       if(s=2000 && 2000<s<3000)
                                       {
                                                 f=p*w*s*(1-0.1);
                                       }
                                       else
                                       {
                                                 if(s=3000 && s>3000)
                                                 {
                                                         f=p*w*s*(1-0.15);
                                                 }
                                       }
                                 }
                         }
               }
         }
         printf("%lf\n",&f);
}

Push 发表于 2012-3-1 20:55:37

#include <stdio.h>

void main()
{
        double p, w, s, f=0;
        printf("基本运费: ");
        scanf("%lf", &p);//你要人输入你得写输入函数啊...
       
        printf("物重: ");
        scanf("%lf", &w);
       
        printf("路程: ");
        scanf("%lf", &s);
       
        if(s < 250)                        //if else不用钱啊,省着点花,或者用?:这个判断
        {
                f = p * w * s;
        }
        else if(s >= 250 && s < 500)//大于等于不是那么写的(大于等于<=,小于等于>=,等于==)
        {
                f = p * w * s *(1-0.02);
        }
        else if(s >= 500 && s < 1000)
        {
                f = p * w * s * (1-0.05);
        }
        else if(s >= 1000 && s < 2000)
        {
                f = p * w * s * (1-0.08);
        }
        else if(s >= 2000 && s < 3000)
        {
                f = p * w * s * (1-0.1);
        }
        else if(s >= 3000)
        {
                f = p * w * s *(1-0.15);
        }
        printf("总额为: %lf\n", f);                //这里不要用&取址符
}

§黑暗-幽灵 发表于 2012-3-3 00:05:12

Push 发表于 2012-3-2 00:07 static/image/common/back.gif


我试了可以,可是为什么我的算出来是等于0

xinyuwuxian 发表于 2012-3-6 21:11:20

Push 发表于 2012-3-2 00:07 static/image/common/back.gif


#include <stdio.h>
void main()
{
         double p,w,s,f;
         printf("请依此输入基本运费,物重,路程:");
         scanf("%lf%lf%lf",&p,&w,&s);
         if(s < 250)
         {
               f=p*w*s;
         }
         else
         {
               if(s >= 250 && s <= 500)
               {
                         f=p*w*s*(1-0.02);
               }
               else
               {
                         if(s >= 500 && s <= 1000)
                         {
                                 f=p*w*s*(1-0.05);
                         }
                         else
                         {
                                 if(s >=1000 && s <= 2000)
                                 {
                                       f=p*w*s*(1-0.08);
                                 }
                                 else
                                 {
                                       if(s >=2000 && s <= 3000)
                                       {
                                                 f=p*w*s*(1-0.1);
                                       }
                                       else
                                       {
                                                 if(s >= 3000)
                                                 {
                                                         f=p*w*s*(1-0.15);
                                                 }
                                       }
                                 }
                         }
               }
         }
         printf("%lf\n",f);
}

xinyuwuxian 发表于 2012-3-6 21:13:00

要遵守c语言的方式而不是直接数学计算

湮汐 发表于 2012-3-7 10:44:45

(s=250 && 250<s<500)这里错了,应该是(s>=250&&s<500)

819551413 发表于 2012-3-18 10:21:40

#include <stdio.h>
int main()
{
        double p,w,s,f;//定义变量
    int t;
    printf("请以此输入基本运费,物重,路程\n");
    scanf("%lf,%lf,%lf",&p,&w,&s);
        //判断s是否大于3000,若大于则令t=12否则t=s/250
        if (s>=3000)
    t=12;
    else
    t=s/250;
    //用switch语句判断不同路程所需的运费
    switch (t)
    {
                case 0:printf("f=%f\n",f=p*w*s);break;
      case 1:printf("f=%f\n",f=p*w*s*(1-0.02));break;
      case 2:
      case 3:printf("f=%f\n",f=p*w*s*(1-0.05));break;
      case 4:
      case 5:
      case 6:
      case 7:printf("%f\n",f=p*w*s*(1-0.08));break;
      case 8:
      case 9:
      case 10:
      case 11:printf("f=%f\n",f=p*w*s*(1-0.1));break;
      case 12:printf("f=%f\n",f=p*w*s*(1-0.15));break;
      default:printf("输入错误\n");
       }
        return 0;
}
这是用switch编的 凑合着看吧

2002wmj 发表于 2014-9-8 23:23:28

很不错呀,多谢分享!
页: [1]
查看完整版本: 我不知道这个程序有什么问题???????????