浙大PAT乙级1039(到底买不买)C语言测试点2无法通过

以下代码测试点2不能通过,请指教何处考虑不到位,谢谢!


#include<stdio.h>
#include<math.h>
int main(){
    int a[123];
    char b;
    int i;
    int lack = 0;
    int surplus = 0;
    for (i=0;i<123;i++)
        a[i] = 0;
    for (i=0;i<1000;i++)
    {
        scanf("%c",&b);
        if (b == '\n')
            break;
        a[b]++;
    }
    for (i=0;i<1000;i++)
    {
        scanf("%c",&b);
        if (b == '\n')
            break;
        a[b]--;
    }
    for (i=48;i<123;i++)
    {
        if (a[i]<0)
            lack += abs(a[i]);
        else if (a[i]>0)
            surplus += a[i];
    }
    if (lack==0)
        printf("Yes %d\n",surplus);
    else
        printf("No %d\n",lack);
    return 0;
}