#include<stdio.h> #include<string.h> #include<math.h> int main(){ char a[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"}; int t,n,i; scanf("%d",&t); while(t--){ scanf("%d",&n); char s[10]; int sum=0,num[100],k=0; while(scanf("%s",s)!=EOF){ if(s[0]>='0'&&s[0]<='9'){ int len=strlen(s); for(i=0;i<len;i++) num[k++]=s[i]-'0'; }//将数字存入num数组中,从高位开始 else if(strcmp(s,"+")==0){//把数字从num中提取加给sum for(i=0;i<k;i++){ sum+=num[i]*pow(10,k-1-i); } k=0;//把k重置成0,以便下一个数或英文存入到num中 } else if(strcmp(s,"=")==0){// 把数字从num中提取加给sum,最后按要求用英文或数字 输出sum for(i=0;i<k;i++){ sum+=num[i]*pow(10,k-1-i); } if(n==0){//数字输出 printf("%d\n",sum); } else if(n==1){//英文输出 int r[10]; int m=0; while(sum>0){ r[m++]=sum%10; sum/=10; }//将每位存入r数组,从低位开始 for(i=m-1;i>0;i--) printf("%s ",a[r[i]]); printf("%s\n",a[r[0]]); } k=0; break;//将结果输出后退出while循环 } else{//把英文转化成数字存入num数组中 for(i=0;i<10;i++) { if(strcmp(s,a[i])==0){ num[k++]=i; break; } } } } } } |
Double click to view unformatted code.