Advertisement
filip710

2016KOL2_Z2_GRUPA B

Jul 6th, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.75 KB | None | 0 0
  1. //PROGRAM.C
  2. /* Deklarirati strukturu film u koju će se spremiti ovakvi ulazni podaci:
  3.  * naziv_filma, redatelj, godina_izlaska i ocjena. Ulaz u program je prvo broj filmova
  4.  * koji će se učitati, a nakon toga redom podaci o njima.
  5.  * Primjer ulaznih podataka:
  6.  * 3
  7.  * The Shawshank Redemption
  8.  * Frank Darabont
  9.  * 1994
  10.  * 9.3
  11.  * Shrek
  12.  * Andrew Adamson
  13.  * 2001
  14.  * 7.9
  15.  * Fight Club
  16.  * David Fincher
  17.  * 1999
  18.  * 8.9
  19.  * 2011
  20.  * 90
  21.  * 12000
  22.  
  23.  * Omogućiti korisniku unos podataka za željeni broj filmova (max 20) u polje struktura.
  24.  
  25.  * Napisati funkciju swap koja će primiti pokazivače na 2 člana polja struktura filmova te im zamijeniti mjesta.
  26.  
  27.  * Napisati funkciju sort koja će primiti pokazivač na učitano polje struktura i broj elemenata tog polja.
  28.  * Funkcija treba sortirati članove tog polja po ocjeni filma u padajućem redoslijedu.
  29.  * Koristiti algoritam sortiranja zamjenom susjednih elemenata, a za zamjenu članova polja koristiti prethodno napisanu funkciju swap.
  30.  
  31.  * Napisati funkciju ispis koja će ispisati sortirano polje na ekran u obliku:
  32.  * ime_filma godina_izlaska ocjena
  33.  * Svaki zapis mora biti u novom redu.
  34.  
  35.  * U glavnom dijelu programa učitati podatke za n filmova, sortirati polje struktura te na kraju na ekran ispisati sortirano polje u traženom formatu.
  36.  
  37.  */
  38.  
  39. #include<stdio.h>
  40. #include"functions.h"
  41. int main()
  42. {
  43.     int n, i;
  44.  
  45.     scanf("%d", &n);
  46.     struct film filmovi[n];
  47.     getchar();
  48.  
  49.     for(i=0;i<n;i++)
  50.     {
  51.         printf("Naziv:\n");
  52.         scanf("%[^\n]%*c", filmovi[i].naziv_filma);
  53.         printf("Redatelj:\n");
  54.         scanf("%[^\n]%*c", filmovi[i].redatelj);
  55.         printf("Godina:\n");
  56.         scanf("%d", &filmovi[i].godina_izlaska);
  57.         getchar();
  58.         printf("Ocjena:\n");
  59.         scanf("%f", &filmovi[i].ocjena);
  60.         getchar();
  61.     }
  62.  
  63.     sort(filmovi, n);
  64.     ispis(filmovi, n);
  65.  
  66.     return 0;
  67. }
  68.  
  69. //HEADER
  70. #ifndef FUNCTIONS_H
  71. #define FUNCTIONS_H
  72.  
  73. struct film{
  74.     char naziv_filma[30];
  75.     char redatelj[30];
  76.     int godina_izlaska;
  77.     float ocjena;
  78. };
  79. void swap(struct film *f1, struct film *f2);
  80. void sort(struct film *f, int n);
  81. void ispis(struct film *f, int n);
  82.  
  83. #endif
  84.  
  85. //FUNKCIJE
  86. #include<stdio.h>
  87. #include"functions.h"
  88.  
  89. void swap(struct film *f1, struct film *f2)
  90. {
  91.     struct film pom;
  92.     pom=*f1;
  93.     *f1=*f2;
  94.     *f2=pom;
  95. }
  96.  
  97. void sort(struct film *f, int n)
  98. {
  99.    int i, j;
  100.    for(i=0;i<n-1;i++)
  101.    {
  102.        for(j=0;j<n-1-i;j++)
  103.        {
  104.            if(f[j+1].ocjena>f[j].ocjena) swap(&f[j], &f[j+1]);
  105.        }
  106.    }
  107. }
  108. void ispis(struct film *f, int n)
  109. {
  110.     int i;
  111.     printf("REZULTATI:\n");
  112.     for(i=0;i<n;i++)
  113.     {
  114.         printf("%s %d %.1f\n", f[i].naziv_filma, f[i].godina_izlaska, f[i].ocjena);
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement