hdu 1982

http://acm.hdu.edu.cn/showproblem.php?pid=1982

这题真是够纠结的啊,开始是pe但找不出神马原因,后来看了别人的代码,发现我没考虑"-----######---##-#-#"

这种情况,导致我的pe,应该输出10个空格才对。

代码如下:

#include"stdio.h"

char word[28]={"0ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
char a[10005];

void output()
{
    int i,s=0,state=0;
    for(i=0;a[i]!='\0';i++)
    {
        if(a[i]!='-'&&a[i]!='#')
        {
            state=1;
            s=s*10+a[i]-'0';
            if(a[i+1]=='\0')
                printf("%c",word[s]);
        }
        else if(state==1&&(a[i]=='-'||a[i]=='#'))
        {
            printf("%c",word[s]);
            state=s=0;
            if(a[i]=='#')
                printf(" ");
        }
        else if(a[i]=='#')
            printf(" ");
    }
}


int main( )
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s",a);
        output();
        printf("\n");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/chaosheng/p/2498791.html