View Code of Problem 16

#include<stdio.h>
#include<string.h>
#include<math.h>

int main()
{
	int t,flag;
	char str[10][10] = {"zero","one","two","three","four","five","six","seven","eight","nine"};
	scanf("%d",&t);
	while(t--)
    {
        scanf("%d",&flag);
        char s[20];
        int sum = 0,len = 0,i,num[10] = {0};
        int k = 0,temp[10];
        while(scanf("%s",s))
        {
            if(s[0] >= '0'&&s[0] <= '9')
            {
                len = strlen(s);
                for(i = 0;i < len;i++)
                    num[i] = s[i] - '0';
            }
            else if(s[0] == '+')
            {
                for(i = 0;i < len;i++)
                {
                    sum += num[i]*pow(10,len-1-i);
                }
                len = 0;
            }
            else if(s[0] == '=')
            {
                for(i = 0;i < len;i++)
                {
                    sum += num[i]*pow(10,len-1-i);
                }
                if(!flag)
                {
                    printf("%d\n",sum);
                }
                else
                {
                    while(sum)
                    {
                        temp[k++] = sum%10;
                        sum /= 10;
                    }
                    for(i = k-1;i >= 0;i--)
                    {
                        printf("%s%c",str[temp[i]],i==0?'\n':' ');
                    }
                }
                break;
            }
            else
            {
                for(i = 0;i < 10;i++)
                {
                    if(strcmp(s,str[i]) == 0)
                    {
                        num[len++] = i;
                        break;
                    }
                }
            }
        }
    }
}

Double click to view unformatted code.


Back to problem 16