View Code of Problem 16

#include "stdio.h"
#include "string.h"
void main()
{
	int i,j;
	int change(char s[]);
	int t;
	int flag;
	int x,y;
	char a[100];
	int p;
	int g[100];
	scanf("%d",&t);
	for(x=0;x<t;x++)
	{
		scanf("%d",&flag);
		//getchar();
		gets(a);
	//	printf("00000000");
		p=change(a);	
		if(flag==0)
			printf("%d\n",p);
		else
		{
			for(i=0;p!=0;i++)
			{
				y=p%10;
				g[i]=y;
				p=p/10;
				//printf("%d",g[i]);
			}
			for(j=i-1;j>=0;j--)
			{
				if(g[j]==1)
					printf("one ");
				if(g[j]==2)
					printf("two ");
				if(g[j]==3)
					printf("three ");
				if(g[j]==4)
					printf("four ");
				if(g[j]==5)
					printf("five ");
				if(g[j]==6)
					printf("six ");
				if(g[j]==7)
					printf("seven ");
				if(g[j]==8)
					printf("eight ");
				if(g[j]==9)
					printf("nine ");
				if(g[j]==0)
					printf("zero ");
			}
		}

	}
}

int change(char s[])
{
	int shi;
	int d;
	int i,j;
	int k[100]={0};
	int sum1=0,sum2=0;
	//puts(s);
	for(j=0,i=0;s[i]!='+';i++)			//one two three four,five six seven eight nine zero
	{
		if(s[i]=='o')
		{k[j]=1;	i=i+3;}
		if(s[i]=='t')
		{
			if(s[i+1]=='w')
			{k[j]=2;	i=i+3;}
			if(s[i+1]=='h')
			{k[j]=3;	i=i+5;}
		}
		if(s[i]=='f')
		{
			if(s[i+1]=='o')
			{k[j]=4;	i=i+4;}
			if(s[i+1]=='i')
			{k[j]=5;	i=i+4;}
		}
		if(s[i]=='s')
		{
			if(s[i+1]=='i')
			{k[j]=6;	i=i+3;}
			if(s[i+1]=='e')
			{k[j]=7;	i=i+5;}
		}
		if(s[i]=='e')
		{k[j]=8;	i=i+5;}
		if(s[i]=='n')
		{k[j]=9;	i=i+4;}
		if(s[i]=='z')
		{k[j]=0;	i=i+4;}
		//printf("%d ",k[j]);	
		j++;
	}
	shi=1;
	for(d=j-1;d>=0;d--)
	{
		k[d]=k[d]*shi;
		sum1=sum1+k[d];
		shi=shi*10;
		//printf("%d ",k[d]);
	}
//	printf("%d",i);							//左
///////////////////////////////////////////////////////////////////////////////////////////
	for(j=0,i=i+1;s[i]!='=';i++)			//one two three four,five six seven eight nine zero
	{
		if(s[i]=='o')
		{k[j]=1;	i=i+3;}
		if(s[i]=='t')
		{
			if(s[i+1]=='w')
			{k[j]=2;	i=i+3;}
			if(s[i+1]=='h')
			{k[j]=3;	i=i+5;}
		}
		if(s[i]=='f')
		{
			if(s[i+1]=='o')
			{k[j]=4;	i=i+4;}
			if(s[i+1]=='i')
			{k[j]=5;	i=i+4;}
		}
		if(s[i]=='s')
		{
			if(s[i+1]=='i')
			{k[j]=6;	i=i+3;}
			if(s[i+1]=='e')
			{k[j]=7;	i=i+5;}
		}
		if(s[i]=='e')
		{k[j]=8;	i=i+5;}
		if(s[i]=='n')
		{k[j]=9;	i=i+4;}
		if(s[i]=='z')
		{k[j]=0;	i=i+4;}
	//	printf("%d ",k[j]);	
		j++;
	}
	shi=1;
	for(d=j-1;d>0;d--)
	{
		k[d]=k[d]*shi;
		sum2=sum2+k[d];
		shi=shi*10;
		//printf("%d ",k[d]);
	}
	//printf(" %d ",sum2);	

	return sum1+sum2;
}

Double click to view unformatted code.


Back to problem 16