View Code of Problem 16

#include<string.h>
#include<stdio.h>
#include<math.h>
int main()
{
   int t,len = 0;
   int a[10] = {0};
   char str[10][10] = {"zero","one","two","three","four","five","six","seven","eight","nine"};
   scanf("%d",&t);
   while(t--)
   {
       int flag,i,sum = 0;
       scanf("%d",&flag);
       char s[10];
       while(scanf("%s",s) != EOF)
       {
           if(s[0] >= '0' && s[0] <= '9')
           {
               len = strlen(s);
               for(i = 0;i < len;i++)
               {
                   a[i] = s[i] - '0';
               }
           }
           else if(strcmp(s,"+") == 0)
           {
               for(i = 0;i < len;i++)
                    sum += a[i]*pow(10,len-1-i);
                len = 0;
           }
           else if(strcmp(s,"=") == 0)
           {
               if(!flag)
                    printf("%d\n",sum);
               else
               {
                   while(sum >= 10)
                   {
                       printf("%s ",str[sum/10]);
                       sum %= 10;
                   }
                   printf("%s\n",str[sum]);
               }
               len = 0;
           }
           else
           {
               for(i = 0;i < 10;i++)
               {
                   if(strcmp(s,str[i]) == 0)
                   {
                       a[len++] = i;
                       break;
                   }
               }
           }
       }

   }
}

Double click to view unformatted code.


Back to problem 16