#include <stdio.h>

int main() {
    long  xuehao;
    float a,b,c;
    scanf("%ld;%f,%f,%f",&xuehao,&a,&b,&c);
    printf("The each subject score of No. %ld is %.2f, %.2f, %.2f.\n",xuehao,a,b,c);
    return 0;
}

开始做的时候%ld后面的分号打成了逗号,输出a,b,c都是0,找半天问题都没找到。