鱼C论坛

 找回密码
 立即注册
查看: 1148|回复: 2

[已解决]c语言 运输公司对用户计算运费

[复制链接]
发表于 2020-4-10 12:33:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
C基础编程题目:运输公司对用户计算运费,距离越远每公里运费越低,标准如下:
s<250 没有折扣,
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).试编程计算货物运费。
我的代码   1 error:  switch expression not integral
请指出错误
# include<stdio.h>

void main()
{
        float p, w, s, d, f;
        f = p * w * s * (1 - d);
        printf("基本运费元/公里p=,货物重量w=, 距离s=\n");
        scanf("%f%f%f",&p, &w, &s);
        printf("基本运费%f元/公里,货物重量w=%f t, 距离s=%f km\n",p, w, s);
        switch (s)
        {
                case s<250:
                printf("d =0\n");
                break;
                case s<=250 && s < 500:
                printf("d =0.02\n");
                break;
                case s >= 500 && s < 1000:
                printf("d = 0.05\n");
                break;
                case s<2000 && s >= 1000:
                printf("d =0.08\n");
                break;
                case s>2000 && s <= 3000:
                printf("d =0.1\n");
                break;
                case s > 30000:
                printf("d =0.15\n");
                break;
                default:
                        printf("error");

        }
        printf("%f:\n",f);
       

}
最佳答案
2020-4-10 12:41:02
case s<250:
switch要求case后面跟的是一个数而不是表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-10 12:41:02 | 显示全部楼层    本楼为最佳答案   
case s<250:
switch要求case后面跟的是一个数而不是表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 12:51:01 | 显示全部楼层
我改好了
# include<stdio.h>

void main()
{
        float p, w, s, d, f;
        f = p * w * s * (1 - d);
        printf("基本运费元/公里p=,货物重量w=, 距离s=\n");
        scanf("%f%f%f",&p, &w, &s);
        printf("基本运费%f元/公里,货物重量w=%f t, 距离s=%f km\n",p, w, s);


       

       
                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<2000 && s >= 1000)
                d =0.08;
               
                else if (s>2000 && s <= 3000)
                d =0.1;
               
                else
                d =0.15;
        printf("折扣d=%f折\n",(1-d)*10);


        f = p * w * s * (1 - d);
        printf("费用=%f:\n",f);
       

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 06:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表