为什么答案不对啊 那里有问题啊

img

img


我的答案是1685.0
正确答案是1685.1
到底哪里不对啊
我刚学真的不会啊

#include <stdio.h>

int main()
{
    int x;
    float y;
    scanf("%d",&x);
    if (x < 5000)
    {
        y = x * 0.2;
    }else if (x >= 5000 && x <= 10000)
    {
        y = x * 0.3;
    }else if (x > 10000)
    {
        y = x * 0.5;
    }
    printf("%.1f", y);
    return 0;
}

在每个y =后面 1.0 * x * 20/100 这样写 加个1.0;
或者把你x的输入改成float。
因为int除法会把小数去掉

x被定义成了int型,每个计算前加上强制转换

(double)x

或者

1.0*x

int x改为double x
scanf("%d"改为scanf("%lf"
再在下一行加一句(float)x;