///////////////////////////////////////////////////////////////////////
// ITS – Visoka Škola Strukovnih Studija Za Informacione Tehnologije
//
https://www.its.edu.rs/
// Predmet: Osnove Programiranja – Programski jezik C
// P
rogram na koji iz datoteke igraci.txt čita podatke o igračima, pronalazi
// igrača sa najvećim brojem ostvarenih
// poena i na standardnom izlazu ispisuje ime tog igrača i broj ostvarenih
// poena.
// Smatrati da datoteka igraci.txt postoji.

 

/*Zbog formatiranja teksta neke printf funkcije su prelomljene u vise redova, obratiti paznju pre kompajliranja programa*/

 

#include <stdio.h>

// Maximalna duzina imena igraca
#define MAX_IME_PREZIME 30

// Maximalan broj igraca
#define MAX_IGRACI 100

// struktura za cuvanje podataka o igracu
typedef struct igrac
{
   char ime[MAX_IME_PREZIME];
   int visina;
   int tezina;
   int brKoseva;
   int brAsistencija;
   int brUkradenihLopti;
   int brBlokada;
   float ukupanBrBodova;
   }Igrac;

// niz struktura za cuvanje podataka o igracu
Igrac igraci[MAX_IGRACI];

// inicijalizacija, broj trenutno ucitanih igraca i broj bodova
int br_igrac = 0;
int brBodova = 0;

// najbolji igrac na turniru
Igrac najbolji;

// ucitavanje igraca iz fajla
int ucitaj_igraca(FILE* f, Igrac* i)
{
   fscanf (f, "%s%d%d%d%d%d%d", i->ime, &(i->visina), &(i->tezina), &(i->brKoseva), &(i->brAsistencija), &(i->brUkradenihLopti), &(i->brBlokada));

  if(feof(f))

  return 0;
  return 1;
}

// funkcija ukupanBrBodova izracunava ukupan broj bodova za igraca i najboljeg igraca
float ukupanBrBodova(Igrac i)
{
float poeniKoseva = i.brKoseva * 1;
float poeniAsistencije = i.brAsistencija * 0.5;
float poeniUkradenihLopti = i.brUkradenihLopti * 0.3;
float poeniBlokada = i.brBlokada * 0.2;
i.ukupanBrBodova = poeniKoseva + poeniAsistencije + poeniUkradenihLopti + poeniBlokada;
if(i.ukupanBrBodova > brBodova)
{
brBodova = i.ukupanBrBodova;
najbolji = i;
}

return i.ukupanBrBodova;
}

void ispisi_igrace()
{
int r;
printf("IGRACI TURNIRA: V T K A U B BROJ BODOVA!nl!***********************************************!nl!");
 
for(r=0; r<br_igrac; r++)


printf("%-10s %d %d %d %d %d %d %f !nl!", igraci[r].ime,igraci[r].visina,igraci[r].tezina,igraci[r].brKoseva,igraci[r].brAsistencija,igraci[r].brUkradenihLopti,igraci[r].brBlokada, ukupanBrBodova(igraci[r]));

printf("!nl!NAJBOLJI IGRAC TURNIRA:!nl!************************************************");

printf("!nl!!nl!%-10s !tab!%d %d %d %d %d %d !tab! %f !nl!!nl!",
najbolji.ime, najbolji.visina,najbolji.tezina,najbolji.brKoseva,
najbolji.brAsistencija,najbolji.brUkradenihLopti,najbolji.brBlokada,
najbolji.ukupanBrBodova);

printf("***************************************!nl!");

printf("LEGENDA:!nl!");

printf("V – Visina Igraca:!nl!");

printf("T – Tezina Igraca:!nl!");

printf("K – Broj Ostvarenih Koseva Igraca:!nl!");

printf("A – Broj Asistencija Igraca:!nl!");

printf("U – Broj Ukradenih Lopti Igraca:!nl!");

printf("B – Broj Blokada Igraca:!nl!!nl!");
}

main()
{

   FILE* f;

   char ime_datoteke[256];
   printf("U kojoj datoteci se nalaze podaci o igracima: ");
   scanf("%s", ime_datoteke);

   // provera otvaranja

   if((f = fopen(ime_datoteke, "r")) == NULL)
{

   printf("Greska prilikom otvaranja datoteke %s!nl!", ime_datoteke);

   return ;
}

   // Ucitavanje igraca

   while(ucitaj_igraca(f, &igraci[br_igrac]))

   br_igrac++;

   // ispis podataka svih igraca i pronalazenje najboljeg

   ispisi_igrace();

   // zatvaramo fajl

   fclose(f);

}