关于#数字#的问题,如何解决?

#include<stdio.h>
int main()
{
    int a=0;
    float b,c,d=0;
    scanf("%d;%f,%f,%f",&a,&b,&c,&d);
     printf("The each subject score of  No. %ld is %.2lf, %.2lf, %.2lf.",a,b,c,d);
return 0;
}

就是我打了四个数字,但它只显示第一个数字,后面的数字自动为0;
45 76 87 09
The each subject score of No. 45 is 0.00, 0.00, 0.00.