Advertisement
Solomid

2.

Feb 18th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.82 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void unesi(char niz[], int velicina)
  4. {
  5.     char znak = getchar();
  6.     if (znak == '\n') znak = getchar();
  7.     int i = 0;
  8.     while(i < velicina - 1 && znak != '\n') {
  9.         niz[i] = znak;
  10.         i++;
  11.         znak = getchar();
  12.     }
  13.     niz[i]='\0';
  14. }
  15.  
  16. int izvuci_broj(char* s, int* vel){
  17.     int tmp = 0;
  18.     while(*s >= '0' && *s <= '9'){
  19.         tmp = tmp*10 + *s - '0';
  20.         (*vel)++;
  21.         s++;
  22.     }
  23.     if(tmp > 1000 || tmp < 0) return -1;
  24.     return tmp;
  25. }
  26. int prebroj(char* s, int broj){
  27.     int num,i;
  28.     int brojac = 0, vel = 0;
  29.     while(*s != '\0'){
  30.         if(*s >= '0' && *s <= '9'){
  31.             num = izvuci_broj(s,&vel);
  32.             for(i = 0; i < vel; i++) s++;
  33.             vel = 0;
  34.             if(broj == num) brojac++;
  35.         }
  36.         if(*s == '\0') break;
  37.         s++;
  38.     }
  39.     return brojac;
  40. }
  41. void izbaci(char* s, int broj){
  42.     char* pom1, *pom2 = s;
  43.     int trazeni, vel = 0,i;
  44.     while(*s != '\0'){
  45.         if(*s >= '0' && *s <= '9'){
  46.             pom1 = s;
  47.             trazeni = izvuci_broj(s,&vel);
  48.             for(i = 0; i < vel; i++) s++;
  49.             vel = 0;
  50.             if(trazeni == broj){
  51.                 while(*pom1++ = *s++);
  52.                 s = pom2;
  53.             }
  54.         }
  55.         if(*s == '\0') break;
  56.         s++;
  57.     }
  58. }
  59.  
  60. char* izbaci_najcesci(char *s){
  61.     char* pocetak = s;
  62.     int i;
  63.     char* pom = s;
  64.     int max = 0, maxbr = 0, vel = 0;
  65.     int trazeni, brojac;
  66.     while(*s != '\0'){
  67.         if(*s >= '0' && *s <= '9'){
  68.             trazeni = izvuci_broj(s,&vel);
  69.             if(trazeni == -1){
  70.                 s++;
  71.                 if(*s == '\0') break;
  72.                 continue;
  73.             }
  74.             for(i = 0; i < vel; i++) s++;
  75.             vel = 0;
  76.             brojac = prebroj(pom,trazeni);
  77.             if(maxbr < brojac){
  78.                 maxbr = brojac;
  79.                 max = trazeni;
  80.             }else if(maxbr == brojac){
  81.                 if(max > trazeni){
  82.                     max = trazeni;
  83.                 }
  84.             }
  85.             pom = s;
  86.             brojac = 0;
  87.         }
  88.         if(*s == '\0') break;
  89.         s++;
  90.     }
  91.     izbaci(pocetak, max);
  92.     return pocetak;
  93. }
  94.  
  95.  
  96.  
  97. int main()
  98. {
  99.     char niz[10001];
  100.     unesi(niz,10001);
  101.     printf("%s",izbaci_najcesci(niz));
  102.     return 0;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement