View Code of Problem 16

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

Double click to view unformatted code.


Back to problem 16