东北大米 发表于 2018-8-7 00:28:35

运输公司对用户计算运费代码错在哪里了?

#include <stdio.h>
void main()
{
        float d, p, w, s, f;
        p = 5.0;
        w = 9.0;
        printf("input sherr numbers :");
        scanf("%f",&s);
        if (s < 250)
        {
                d = 0.0 / 100;
                f = p*w*s*(1 - d);
                printf("零折扣%7.2f\n",f );
        }
        else if (250 <= s < 500)
        {
                d = 2.0 / 100;
                f = p*w*s*(1 - d);
                printf("百分之2的折扣%7.2f\n", f);
        }
        else if (500 <= s < 1000)
        {
                d = 5.0 / 100.0;
                f = p*w*s*(1 - d);
                printf("百分之5的折扣%7.2f\n", f);
        }
        else if (1000 <= s < 2000)
        {
                d = 8.0 / 100;
                f = p*w*s*(1 - d);
                printf("百分之8的折扣%7.2f\n", f);
        }
        else if (2000 <= s < 3000)
        {
                d = 10.0 / 100;
                f = p*w*s*(1 - d);
                printf("百分之10的折扣%7.2f\n", f);
        }
        else if (s > 3000)
        {
                d = 15.0 / 100;
                f = p*w*s*(1 - d);
                printf("百分之15的折扣%7.2f\n", f);
        }
}
为什么我到第三个5%折扣的时候就无法自动算百分比,求高手帮忙,谢谢。

无符号整形 发表于 2018-8-7 08:20:59

250 <= s < 500
这个的意思是用250<=s的结果(0或1)和500比较,很明显是错误的,这些判断语句都是错误的。
应该改成这样:
250 <= s && s < 500
页: [1]
查看完整版本: 运输公司对用户计算运费代码错在哪里了?