#include #include #include int main(void){ char *scisla[] = {"negative", "zero", "one", "two", "three", "four", "five", "six" ,"seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen","seventeen", "eighteen", "nineteen","twenty","thirty","forty","fifty","sixty","seventy", "eighty","ninety","hundred","thousand","million"}; int icisla[] = {-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, 30,40,50,60,70,80,90,100,1000,1000000}; char cislo[20]; char radek[1000]; int pocet=32; int celkem[2]; int i,j,k,l,xxx,part; int neg; int index1,index2; int ll; int cel; while(1){ index1 = 0; gets(radek); celkem[0]=0; celkem[1]=0; celkem[2]=0; xxx=0; neg=1; if (radek[0] == 0) return 0; do{ index2=0; if (index1) index1++; while(isalpha(radek[index1])) { cislo[index2] = radek[index1]; index1++; index2++; } /*printf(" indexy %d %d",index1,index2);*/ cislo[index2]=0; for(i=0;i<32;i++){ if (!strcmp(scisla[i],cislo)) {part=icisla[i];break;} } /*printf("part %d \n", part);*/ if (part == -1) neg = -1; else if (part == 1000000 || part == 1000){ celkem[xxx] *= part;xxx++;} else if (part == 100) celkem[xxx] *=part; else celkem[xxx] += part; /* printf("xxx %d\n %d",xxx,celkem[xxx]);*/ }while (radek[index1] != 0); cel = celkem[0]+celkem[1]+celkem[2]; cel *= neg; printf("%d\n",cel); } return 0; }