问一个琐碎的问题(小知识点忘记了),问题在斜杠后面

#include<stdio.h>
void sort(double x[],int n)
{    int m,h;
    double temp;
    for(m=0;m<n-1;m++)
    for(h=m+1;h<n;h++)
    if(x[m]>x[h])
    {temp=x[m];x[m]=x[h];x[h]=temp;}
    }
    
void main()
{    int k;
    double xdy,sg[11]={1.73,1.75,1.78,1.81,1.84,1.87,1.88,1.88,1.89,1.90};
    printf("输入新队员身高:"); 
    scanf("%lf",&xdy);
    
    if(xdy>sg[9])
    sg[10]=xdy;
    if(xdy<sg[0])
    {    for(k=10;k>=1;k--)
        sg[k]=sg[k-1];
        sg[0]=xdy;}
     if(xdy>sg[0]&&xdy<sg[9]) 
     {    sg[10]=xdy;
         sort(sg,11);}
         
     printf("\n\n处理后的队员身高顺序:");
     for(k=0;k<11;k++)
     printf("%5.2f",sg[k]); //double输出时候采用lf,为什么我这里的f也可以正常运行?
}

double 输出用 %f 也可以,但是输入必须用 %lf

类型强制转换,f和lf的精度已经不一样了,你用%d也能输出,但只是输出整数部分了