#include #include #include char *veta; char *slovo; int main() { char *eoln; long cislo=0; long hundred=0,thousand=0,million=0,minus=1; veta = (char *) calloc (sizeof(char),200); if ( !veta ) printf("beta err\n"); slovo = (char *) calloc (sizeof(char),200); if ( !slovo ) printf("slovo err\n"); /* printf("alloc\n"); while ( scanf("%s",veta) != EOF ); */ for (;;) { fgets(veta,199,stdin); hundred = cislo = thousand= million= 0; minus= 1; if ( strlen(veta) < 4 ) break; eoln = strrchr(veta,'\n'); if ( eoln ) *eoln = '\0'; /* printf("get \n");*/ /* printf("-%s-\n",veta);*/ slovo = strtok(veta," "); do { /* printf("*%s*\n",slovo);*/ if ( strcmp(slovo,"negative") == 0 ) minus = -1; if ( strcmp(slovo,"zero") == 0 ) cislo = 0; if ( strcmp(slovo,"one") == 0 ) cislo += 1; if ( strcmp(slovo,"two") == 0 ) cislo += 2; if ( strcmp(slovo,"three") == 0 ) cislo+=3; if ( strcmp(slovo,"four") == 0 ) cislo+=4; if ( strcmp(slovo,"five") == 0 ) cislo+=5; if ( strcmp(slovo,"six") == 0 ) cislo+=6; if ( strcmp(slovo,"seven") == 0 ) cislo+=7; if ( strcmp(slovo,"eight") == 0 ) cislo+=8; if ( strcmp(slovo,"nine") == 0 ) cislo+=9; if ( strcmp(slovo,"ten") == 0 ) cislo=10; if ( strcmp(slovo,"eleven") == 0 ) cislo=11; if ( strcmp(slovo,"twelve") == 0 ) cislo=12; if ( strcmp(slovo,"thirteen") == 0 ) cislo=13; if ( strcmp(slovo,"fourteen") == 0 ) cislo=14; if ( strcmp(slovo,"fifteen") == 0 ) cislo=15; if ( strcmp(slovo,"sixteen") == 0 ) cislo=16; if ( strcmp(slovo,"seventeen") == 0 ) cislo=17; if ( strcmp(slovo,"eighteen") == 0 ) cislo=18; if ( strcmp(slovo,"nineteen") == 0 ) cislo=19; if ( strcmp(slovo,"twenty") == 0 ) cislo=20; if ( strcmp(slovo,"thirty") == 0 ) cislo=30; if ( strcmp(slovo,"forty") == 0 ) cislo=40; if ( strcmp(slovo,"fifty") == 0 ) cislo=50; if ( strcmp(slovo,"sixty") == 0 ) cislo=60; if ( strcmp(slovo,"seventy") == 0 ) cislo=70; if ( strcmp(slovo,"eighty") == 0 ) cislo=80; if ( strcmp(slovo,"ninety") == 0 ) cislo=90; if ( strcmp(slovo,"hundred") == 0 ) { hundred=cislo*100; cislo = 0; } if ( strcmp(slovo,"thousand") == 0 ) { thousand=(hundred+cislo)*1000; hundred = 0; cislo = 0; } if ( strcmp(slovo,"million") == 0 ) { million=(hundred +cislo)*1000000L; thousand = hundred= 0; cislo = 0; } /*printf("%ld\n", cislo);*/ } while ( (slovo = strtok(NULL," ")) != NULL ); printf("%ld\n",(cislo+hundred+thousand+million)*minus); strcpy(veta,""); } free(slovo); free(veta); return 0; }