diff options
Diffstat (limited to 'inf/rtk/šolsko/4.c')
-rw-r--r-- | inf/rtk/šolsko/4.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/inf/rtk/šolsko/4.c b/inf/rtk/šolsko/4.c new file mode 100644 index 0000000..1aa574c --- /dev/null +++ b/inf/rtk/šolsko/4.c @@ -0,0 +1,27 @@ +/* +opisna rešitev: + +Naredimo seznam takih elementov: + +enum dejanje { + PRIHOD, + ODHOD +}; +struct dejanje { + int čas; + int dolžina; + enum dejanje dejanje; +}; + +V zanki za vsak tovornjak v ta seznam dodamo ta dejanja. Najprej dodamo dejanje s .dejanje == PRIHOD in čas prihoda, nato pa dejanje s .dejanje == ODHOD, ki vsebuje vrednost prihoda, ki ji je prištet čas postanka. V vsak element seznama dodamo tudi dolžino tovornjaka. + +Po velikosti uredimo glede na čas seznam dejanj s standardno funkcijo qsort(). Sortirna funkcija naj v obzir vzame tudi dejanje. Če je prvo dejanje ODHOD in drugo PRIHOD, imata pa isti čas, vrne -1 in s tem postavi ODHOD pred PRIHOD. + +Deklariramo številsko spremenljivko maksdolžina in jo inicializiramo na 0, prav tako naredimo spremenljivko trenutnadolžina. + +Gremo po urejenem seznamu v zanki in ko naletimo na element s .dejanje == PRIHOD, povečamo spremenljivko trenutnadolžina za .dolžina, ko naletimo na element s .dejanje == ODHOD, zmanjšamo spremenljivko trenutnadolžina za .dolžina. Vsakič na koncu programa v zanki preverimo, če je trenutnadolžina morebiti večja od maksdolžina, v tem primeru maksdolžina nastavimo na trenutnadolžina. + +Ob koncu te zanke na standardni izhod izpišemo spremenljivko maksdolžina in končamo program. + +*/ + |