SHARE
TWEET

Untitled

a guest Oct 14th, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define D_CRT_NONSTDC_NO_WARNINGS_GLOBALS
  4. #pragma warning(disable : 4996)
  5. #define studentsFile "studenti.txt"
  6.  
  7. typedef struct studenti {
  8.     char ime[10];
  9.     char prez[10];
  10.     int bodovi;
  11. }STUD;
  12.  
  13. int BrojStudenata();
  14. int Citanje(STUD*);
  15. int Ispis(STUD*, int);
  16. float RelativniBodovi(int bodovi, int max);
  17. int MaxBodovi(STUD*, int);
  18.  
  19. int main()
  20. {
  21.     int brojSt = 0;
  22.     STUD* pokSt = NULL;
  23.  
  24.     brojSt = BrojStudenata();
  25.     if (brojSt > 0)
  26.     {
  27.         printf("Broj ucitanih studenata je: %d.\n", brojSt);
  28.  
  29.         pokSt = (STUD*)malloc(brojSt * sizeof(STUD));
  30.  
  31.         if (Citanje(pokSt) > 0)
  32.         {
  33.             printf("Studenti uspjesno ucitani.\n\n");
  34.             Ispis(pokSt, brojSt);
  35.         }
  36.     }
  37.     free(pokSt);
  38.     return 0;
  39. }
  40.  
  41. int BrojStudenata()
  42. {
  43.     FILE* fp = NULL;
  44.     char niz[1000] = { 0 };
  45.     int br = 0;
  46.  
  47.     fopen_s(&fp, studentsFile, "r");
  48.     if (fp == NULL)
  49.     {
  50.         printf("Datoteka nije uspjesno otvorena!\n");
  51.     }
  52.     else
  53.     {
  54.         while (!feof(fp))
  55.         {
  56.             fgets(niz, 1000, fp);
  57.             br++;
  58.         }
  59.         fclose(fp);
  60.     }
  61.     return br;
  62. }
  63. int Citanje(STUD* pstud)
  64. {
  65.     int i = 0;
  66.     FILE* fp = NULL;
  67.  
  68.     fp = fopen("studenti.txt", "r");
  69.     if (fp == NULL)
  70.     {
  71.         printf("Datoteka nije uspjesno otvorena!\n");
  72.         return -1;
  73.     }
  74.     else
  75.     {
  76.         while (!feof(fp))
  77.         {
  78.             fscanf(fp, "%s %s %d", pstud[i].ime, pstud[i].prez, &pstud[i].bodovi);
  79.             i++;
  80.         }
  81.         fclose(fp);
  82.         return 1;
  83.     }
  84.  
  85. }
  86. int Ispis(STUD* pstud, int br)
  87. {
  88.     float relBod = 0;
  89.     int maxBod = MaxBodovi(pstud, br);
  90.     for (int i = 0; i < br; i++)
  91.     {
  92.         relBod = RelativniBodovi(pstud[i].bodovi, maxBod);
  93.         printf("%s %s \nbroj bodova: %d \nrelativni broj: %.2f \n\n", pstud[i].ime, pstud[i].prez, pstud[i].bodovi, relBod);
  94.  
  95.     }
  96.     return 1;
  97. }
  98.  
  99. int MaxBodovi(STUD* pstud, int br)
  100. {
  101.     int max = pstud[0].bodovi;
  102.     for (int i = 1; i < br; i++)
  103.     {
  104.         if (pstud[i].bodovi > max)
  105.         {
  106.             max = pstud[i].bodovi;
  107.         }
  108.     }
  109.     return max;
  110. }
  111.  
  112. float RelativniBodovi(int bodovi, int max)
  113. {
  114.     return (((float)bodovi / max) * 100);
  115. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top