Advertisement
Guest User

zad

a guest
Oct 23rd, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct student
  5. {
  6.         char ime[128];
  7.         char prezime[128];
  8.         int bodovi;
  9. };
  10.  
  11. int RowCount (char*);
  12. int ReadData (char*, struct student*);
  13. void PrintData (struct student*, int, int);
  14.  
  15. int main()
  16. {
  17.     int count, MAX;
  18.     student *lista;
  19.    
  20.     count = RowCount("C:\\studenti.txt");
  21.         lista = (student*) malloc (count * sizeof(student));
  22.    
  23.     MAX = ReadData("C:\\studenti.txt", lista);
  24.     PrintData(lista, count, MAX);
  25.    
  26.     getchar();
  27.     getchar();
  28. }
  29.  
  30. int RowCount (char* fileName)
  31. {
  32.         FILE* fp;
  33.         fp = fopen(fileName, "r");
  34.         int lines=0;
  35.         char get;
  36.  
  37.         while (!feof(fp))
  38.         {
  39.         get = fgetc(fp);
  40.                 if (get == '\n' || get == EOF)
  41.                 {
  42.            lines++;
  43.                 }
  44.         }
  45.         fclose (fp);
  46.         return lines;
  47. }
  48.  
  49. int ReadData(char* fileName, student* lista)
  50. {
  51.         FILE* fp = fopen(fileName, "r");
  52.         int i = 0;
  53.         int MAX=0;
  54.         while (!feof(fp))
  55.         {
  56.                 fscanf(fp, "%s %s %d\n", (*(lista+i)).ime ,(*(lista+i)).prezime , &(*(lista+i)).bodovi);
  57.                 if(lista[i].bodovi>MAX)
  58.                     {
  59.                         MAX=lista[i].bodovi;
  60.                     }
  61.                 i++;
  62.         }
  63.         fclose(fp);    
  64.         return MAX;
  65. }
  66.  
  67. void PrintData(student* lista, int br, int MAX)
  68. {
  69.     float relativna=0;
  70.         for (int i = 0; i<br; i++)
  71.         {
  72.                 relativna = ((float)lista[i].bodovi / MAX) * 100;
  73.                 printf("\n%d. Student se zove: %s %s, a njegov apsolutni broj bodova je: %d, te relativni broj bodova: %f", i+1,  lista[i].ime, lista[i].prezime, lista[i].bodovi, relativna );
  74.         }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement