pat乙级1002读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

要求如下

img

我的代码如下,但是过不了第二个测试点,想知道是为啥啊,哪里有问题


#include

int main()
{
    char n; 
    int a = 0, b = 0;
    for (int i = 0; i < 100; i++)
    {
        n = getchar();
        if (n == '\n')
            break;
        else a += (n - '0');
    }
    while (a)
    {
        b = b * 10 + a % 10;
        a = a / 10;
    }
    while (b)
    {
        switch (b % 10)
        {
        case 0:printf("ling");
            break;
        case 1:printf("yi");
            break;
        case 2:printf("er");
            break;
        case 3:printf("san");
            break;
        case 4:printf("si");
            break;
        case 5:printf("wu");
            break;
        case 6:printf("liu");
            break;
        case 7:printf("qi");
            break;
        case 8:printf("ba");
            break;
        case 9:printf("jiu");
            break;
        }
        b /= 10;
        if (b)
            printf(" ");
        else printf("\n");
    }
    return 0;
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^