Advertisement
aed1oN

Z5, ZSR 12

Feb 2nd, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.41 KB | None | 0 0
  1. #include <stdio.h>
  2. #define VEL 100000
  3. #define BROJAC 65536
  4.  
  5. int analiza() {
  6.     unsigned short niz1[VEL], brojaci[BROJAC] = {0}, max, broj = 0; // jer je to najmanji moguci broj na datom intervalu
  7.     int i, j, k, suma = 0, ucitano;
  8.     FILE *ulaz;
  9.     ulaz = fopen("brojevi.dat", "rb");
  10.     if (!ulaz) {
  11.         printf("Greska pri otvaranju datoteke brojevi.dat");
  12.         return -1;
  13.     }
  14.     ucitano = fread(niz1, sizeof(short), VEL, ulaz);
  15.     if (ferror(ulaz)) {
  16.         printf("Greska pri citanju iz datoteke brojevi.dat.\n");
  17.         printf("Ucitano je samo %d brojeva", ucitano);
  18.         fclose(ulaz);
  19.         return -1;
  20.     }
  21.     for (i = 0; i < ucitano; i++) {
  22.         brojaci[niz1[i]]++;
  23.     }
  24.      
  25.     // trazenje broja koji se najviše ponavlja
  26.     max = brojaci[0];
  27.     for (i = 0; i < BROJAC; i++) {
  28.         if (brojaci[i] > max) {
  29.             max = brojaci[i];
  30.             broj = i;
  31.         }
  32.     }
  33.    
  34.     // izbacivanje elemenata koji se ponavljaju
  35.     for (i = 0; i < ucitano; i++ ) {;
  36.         for (j = i + 1; j < ucitano; j++) {
  37.             if (niz1[i] == niz1[j]) {
  38.                 for (k = j; k < ucitano - 1; k++) {
  39.                     niz1[k] = niz1[k + 1];
  40.                 }
  41.                 ucitano--;
  42.                 j--;
  43.             }
  44.         }
  45.     }
  46.    
  47.     // racunanje sume
  48.     for (i = 0; i < ucitano; i++) {
  49.         if (niz1[i] > broj) {
  50.             suma += brojaci[niz1[i]];
  51.         }
  52.     }
  53.     return suma;
  54. }
  55.  
  56. int main() {
  57.     FILE* izlaz = fopen("brojevi.dat", "wb");
  58.     fputc(0, izlaz);
  59.     fputc(0, izlaz);
  60.     fputc(1, izlaz);
  61.     fputc(0, izlaz);
  62.     fclose(izlaz);
  63.     printf("%d", analiza());
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement