Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void unesi(char niz[], int velicina)
- {
- char znak = getchar();
- if (znak == '\n') znak = getchar();
- int i = 0;
- while(i < velicina - 1 && znak != '\n') {
- niz[i] = znak;
- i++;
- znak = getchar();
- }
- niz[i]='\0';
- }
- int izvuci_broj(char* s, int* vel){
- int tmp = 0;
- while(*s >= '0' && *s <= '9'){
- tmp = tmp*10 + *s - '0';
- (*vel)++;
- s++;
- }
- if(tmp > 1000 || tmp < 0) return -1;
- return tmp;
- }
- int prebroj(char* s, int broj){
- int num,i;
- int brojac = 0, vel = 0;
- while(*s != '\0'){
- if(*s >= '0' && *s <= '9'){
- num = izvuci_broj(s,&vel);
- for(i = 0; i < vel; i++) s++;
- vel = 0;
- if(broj == num) brojac++;
- }
- if(*s == '\0') break;
- s++;
- }
- return brojac;
- }
- void izbaci(char* s, int broj){
- char* pom1, *pom2 = s;
- int trazeni, vel = 0,i;
- while(*s != '\0'){
- if(*s >= '0' && *s <= '9'){
- pom1 = s;
- trazeni = izvuci_broj(s,&vel);
- for(i = 0; i < vel; i++) s++;
- vel = 0;
- if(trazeni == broj){
- while(*pom1++ = *s++);
- s = pom2;
- }
- }
- if(*s == '\0') break;
- s++;
- }
- }
- char* izbaci_najcesci(char *s){
- char* pocetak = s;
- int i;
- char* pom = s;
- int max = 0, maxbr = 0, vel = 0;
- int trazeni, brojac;
- while(*s != '\0'){
- if(*s >= '0' && *s <= '9'){
- trazeni = izvuci_broj(s,&vel);
- if(trazeni == -1){
- s++;
- if(*s == '\0') break;
- continue;
- }
- for(i = 0; i < vel; i++) s++;
- vel = 0;
- brojac = prebroj(pom,trazeni);
- if(maxbr < brojac){
- maxbr = brojac;
- max = trazeni;
- }else if(maxbr == brojac){
- if(max > trazeni){
- max = trazeni;
- }
- }
- pom = s;
- brojac = 0;
- }
- if(*s == '\0') break;
- s++;
- }
- izbaci(pocetak, max);
- return pocetak;
- }
- int main()
- {
- char niz[10001];
- unesi(niz,10001);
- printf("%s",izbaci_najcesci(niz));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement