分割整数遇到的问题(不用数组)

img

#include<stdio.h>
#include<math.h>
int main()
{
long long int a,b;
int c,n;
while(scanf("%lld",&a)==1)
{
b=a;
while(a)
{
n=0;
while(b)
{
c=b%10;
b=b/10;
n++;
}
printf("%d ",c);
a=a-pow(10,n-1)*c;
b=a;
}
printf("\n");
}
return 0;
}

但不知道为什么提交显示Wrong Answer

#include <stdio.h>
#include <ctype.h>

int main()
{
    char c;
    while ((c = getchar()) != EOF)
    {
        if (c == '\n')
            putchar('\n');
        if (isdigit(c))
            printf("%c ", c);
    }
    return 0;
}

输入123456789123456789就不行了

循环最前面加这个

if(a==0)
        {
            printf("0 \n");
            continue;
        }

供参考:

#include <stdio.h>
#include <ctype.h>
int main()
{
    char c;
    int  i=0;
    while((c=getchar())!= EOF)
    {
         if(isdigit(c))
            printf(i++ == 0?"%c":" %c",c);
         else{
            printf("\n");
            i = 0;
         }
    }
    return 0;
}