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

 

分析:(1)当全部为0时输出0;

      (2)当要输出字母的前面数字为1时,注意只能输出字母(-1x ——  -x  ||  1x ——— x),由于最后一项是不带字母的,所以当它为(-)1,还理应            输出(-)1。

 

 

 

#include <stdio.h>
#include <string.h>
#include <math.h>
#define maxn 300
char s[10]={'p','q','r','u','v','w','x','y','z'};
int a[15];

int main()
{
    int T, flag;

    scanf("%d", &T);

    while(T --)
    {
        flag = 0;

       for(int i=0; i<10; i++)
         scanf("%d", &a[i]);

         int ans = 0;
         for(int i=0; i<10; i++)
         {
             if(!a[i])
                continue;

             if(ans && a[i]>0) printf("+");
                flag = 1;
                 ans = a[i];
                 if(fabs(a[i])>1 && i!=9)
                 printf("%d",a[i]);
                 else if(a[i]<0 && i!=9)
                    printf("-");
                 else  if(i==9)
                    printf("%d", a[i]);

                 if(i!=9) printf("%c",s[i]);

         }
         if(!flag) printf("0\n");
         else printf("\n");
    }
    return 0;
}
View Code

 

posted on 2016-08-04 15:38  不忧尘世不忧心  阅读(154)  评论(0编辑  收藏  举报