为什么运算后 price=0

  float money,cost,price;
   printf("输入花费多少钱:\n");
scanf("%lf",&money); 
    if(money>=500)
    {
        cost=0.8;
        price=money*cost;
        printf("%.2lf",price);
    }
else if(money<=500 && money>=300)
    {
        cost=0.85;
        price=money*cost;
        printf("%.2lf",price);
        }    
else if(money<=300 && money>=100)
    {
        cost=0.9;
        price=money*cost;
        printf("%.2lf",price);    
    }
else if(money<=100 && money>=50)
    {
        cost=0.95;
        price=money*cost;
        printf("%.2lf",price);
    }
else
        printf("实际花费%.2lf",money);    

}

%f对应float
%lf对应 double
不要混用
学编程先学调试,断点跟,看输入之后money到底是多少,print出来也行,不要全靠猜

%lf是double
%f才是float

其实有两个问题,一个是浮点类型问题,float必须用%f输入,不能用%lf,否则变量值就会是0
另一个问题是,你的if...else条件有交叉,比如money为300时,到底是85折还是90折?第10行和16行,money=300时都满足啊。