C语言切分表法式pta

请问在原代码基础上怎么改正呢,先不考虑小数类型的

img

#include <stdio.h>
#include <string.h>
int main()
{
int i=0;
char a[41];
scanf("%s",&a);
int len=strlen(a);

for(i=0;i<=len;)
{
    if(a[0]=='-'||a[0]=='+') printf("%c",a[0]);
    else if(a[i]=='-' && (a[i-1]>=48||a[i-1]<=57))
    {
    printf("%c",a[i]);
    i++;
    }
    else if(a[i]>=0&&a[i]<=9)
    {
        while(a[i]>=0&&a[i]<=9)
        {
            printf("%c",a[i]);
            i++;
        }
    }else 
    {
        printf("%c\n",a[i]);
        i++;
    }
}
return 0;

}