View Code of Problem 16

int main(){
  char s[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
  int t,flag;
  char a[1000];
  scanf("%d",&t);
  getchar();
  while(t--){
    scanf("%d",&flag);
    getchar();
    scanf("%s",a);
    int len=strlen(a);
    int num1=0,num2=0,k,i;
    for(i=0;i<len;i++){
      if(a[i]=='+'){
        k=i;
      }
    }
    char b[10];
    int j=0;
    for(i=0;i<k;i++){
      if(a[i]>='0'&&a[i]<='9'){
        num1=num1*10+a[i];
      }else{
        if(a[i]!=' '){
          b[j]=a[i];
          j++;
        }
      }
      if(a[i]==' '){
        for(j=0;j<10;j++){
          if(strcmp(s[j],b)){
            num1=num1*10+j;
          }
        }
        j=0;
      }
    }
    for(i=k+1;i<len;i++){
      if(a[i]>='0'&&a[i]<='9'){
        num2=num2*10+a[i];
      }else{
        if(a[i]!=' '){
          b[j]=a[i];
          j++;
        }
      }
      if(a[i]==' '){
        for(j=0;j<10;j++){
          if(strcmp(s[j],b)){
            num2=num2*10+j;
          }
        }
        j=0;
      }
    }
   if(flag==0){
     printf("%d\n",num1+num2);
   }else{
     int sum=num1+num2;
     int q[20];
     i=0;
     while(sum){
       q[i++]=sum%10;
       sum=sum/10;
     }
     for(int j=i-1;j>0;j--){
       printf("%s ",s[a[j]]);
     }
     printf("%s\n",s[a[j]]);
   }
  }
}

Double click to view unformatted code.


Back to problem 16