为什么输出总是4.000000

#include

int main()
{ double x;
double y=0;
scanf("lf",&x);
if(x<0) y=(abs(x))/2;
else if(x<10) y=3+exp(x);
else if(x<20) y=log10(x);
else if(x<30) y=pow(x,1.5);
else if(x<50) y=(sqrt(x))-1;
else y=3*cos(x);

printf("%f",y);
return 0;

}


#include<stdio.h>
#include<math.h>

int main()
{
    double x;
    double y = 0;
    scanf("%lf", &x);
    if (x<0) y = (fabs(x)) / 2;
    else if (x<10) y = 3 + exp(x);
    else if (x<20) y = log10(x);
    else if (x<30) y = pow(x, 1.5);
    else if (x<50) y = (sqrt(x)) - 1;
    else y = 3 * cos(x);
    printf("%lf", y);
    return 0;
}