#2405: 为什么我的程序总报RE???


boy2000007man (B)


我的程序总报RE,但在我的机子上运行没问题啊!

#include <stdio.h>
#include <string.h>
#define Num(a) (int)(a)-48
void ZS(int);
void ZW(int);
int main(void)
{
    char a[10];
    int n,i;
    do
    {
         i=0;
         do
         {
             a[i]=getchar();
             i++;
         }
         while (a[i-1]!='\n' && a[i-1]!=EOF);
         if (a[i-1]==EOF)
         {
               break;
         };
         a[i-1]='\0';
         n=strlen(a);
         for (i=0;i<=n-1;i++)
         {
             if (Num(a[i])!=0 || (Num(a[i+1])!=0 && a[i+1]!='\0'))
               ZS(Num(a[i]));
             if (Num(a[i])!=0 || n-i==5)
               ZW(n-i);
         };
         printf("\n");
    }
    while (1);
    return 0;
}
void ZS(int x)
{
     switch (x)
     {
            case 1:printf("壹");break;
            case 2:printf("贰");break;
            case 3:printf("参");break;
            case 4:printf("肆");break;
            case 5:printf("伍");break;
            case 6:printf("陆");break;
            case 7:printf("柒");break;
            case 8:printf("捌");break;
            case 9:printf("玖");break;
            case 0:printf("零");break;
     };
}
void ZW(int x)
{
     switch (x)
     {
            case 2:printf("拾");break;
            case 3:printf("佰");break;
            case 4:printf("仟");break;
            case 5:printf("万");break;
            case 6:printf("拾");break;
            case 7:printf("佰");break;
            case 8:printf("仟");break;
     }; 
}