/* 11. zadatak - Tamara Stojkovic */ #include void zvezdice(unsigned j) { while (j>0) { putchar('*'); j--; } } void main() { unsigned p,i,rec,recen,kar,brkar[255],duzrec[50],duzrecen[100]; /* p - da li je pronadjena [s]-etiketa i - brojac rec - ukupan broj reci recen - ukupan broj recenica kar - ukupan broj karaktera brkar[i] - niz "kolicine" karaktera ciji je ASCII kod i; duzrec[i] - niz "kolicine" reci cija je duzina i; duzrecen[i] - niz "kolicine" recenica cija je duzina i; */ unsigned long j; /* j - sluzi za crtanje zvezdica */ int c; for (i=0;i<=255;i++) brkar[i]=duzrec[i]=duzrecen[i]=0; /* inicijalizacija nizova */ p=rec=kar=j=i=recen=0; while ((c=getchar())!=EOF) { switch (c) /* broji karaktere bez interpunkcijskih znakova */ { case '\n':case '<':case '.':case '!': case '?':case ',':case '[':break; default: brkar[c]++; kar++; break; } switch (c) /* broji reci */ { case '<':while ((c=getchar())!='>'); break; /*ne broji tag-ove */ case '[': c=getchar(); switch (c) { case 's':case 'S': p=1;break; /* da li je s-etiketa? */ case '/':c=getchar(); if ((c=='s')||(c=='S')) { p=0; duzrecen[j]++; recen++; j=0; } break; /* kraj [s]-etikete */ default:break; } while ((c=getchar())!=']'); break; case '.':case '!':case '?':case ',': break; case ' ':case '\n':case '\t':rec++; duzrec[i]++; if (p) j++; i=0; break; default:i++; } } duzrec[i]++;rec=rec+1-duzrec[0]; /* ispisuje frekv. karaktera */ printf("FREKVENCIJA KARAKTERA\n\n"); printf("Ukupan broj karaktera:\t%u\n\n",kar); printf("Znak\t|Br.poj\t|\t%\t(*=2%)\n"); for (i=0;i<255;i++) if (brkar[i]>0) { j=brkar[i]; j*=50; j/=kar; switch (i) { case '\t':printf("TAB\t %u\t\t",brkar[i]);break; case ' ':printf("SPACE\t %u\t\t",brkar[i]);break; default:printf("%c\t %u\t\t",i,brkar[i]); } zvezdice(j); printf("\n"); } printf("\n\n\n"); /* ispisuje frekv. duzine reci */ printf("FREKVENCIJA DUZINE RECI\n\n"); printf("Ukupan broj reci:\t%u\n\n",rec); printf("Duzina\t|Br.poj.|\t%\t(*=2%)\n"); for (i=1;i<=50;i++) if (duzrec[i]>0) { j=duzrec[i]; j*=50; j/=rec; printf("%u\t %u\t\t",i,duzrec[i]); zvezdice(j); printf("\n"); } printf("\n\n\n"); /* ispisuje frekv. duzine recenica */ printf("FREKVENCIJA DUZINE RECENICA\n\n"); printf("Ukupan broj recenica:\t%u\n\n",recen); printf("Duzina\t|Br.poj.|\t%\t(*=2%)\n"); for (i=1;i<100;i++) if (duzrecen[i]>0) { j=duzrecen[i]; j*=50; j/=recen; printf("%u\t %u\t\t",i,duzrecen[i]); zvezdice(j); printf("\n"); } }