Advertisement
Guest User

ispit17 c

a guest
Jan 29th, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.41 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. typedef char String[60];
  4.  
  5. typedef struct
  6. {
  7.     int rastojanje;
  8.     int brzina;
  9.     int delay;
  10.     int broj_zicare;
  11.     double vreme;
  12. }zicara;
  13.  
  14. typedef struct
  15. {
  16.     String ime;
  17.     int godiste;
  18.     int brzina;
  19.     int broj_zicare;
  20.     int vreme_cekanja;
  21. }skijas;
  22.  
  23. void UnosPodataka( String datZicare, zicara zicare[], int *broj_zicara, String datSkijasi, skijas skijasi[], int *broj_skijasa)
  24. {
  25.     int i;
  26.     FILE *f = fopen( datZicare, "r");
  27.     fscanf( f, "%d", broj_zicara );
  28.     for(i=0; i<*broj_zicara; i++)
  29.     {
  30.         fscanf( f, "%d\n%d\n%d\n", &zicare[i].rastojanje,
  31.                                    &zicare[i].brzina,
  32.                                    &zicare[i].delay);
  33.         zicare[i].broj_zicare = i + 1;
  34.         zicare[i].vreme = (double) zicare[i].rastojanje / zicare[i].brzina;
  35.     }
  36.     f = fopen( datSkijasi, "r");
  37.     fscanf( f, "%d", broj_skijasa );
  38.     for( i=0; i < *broj_skijasa; i++)
  39.     {
  40.         fscanf( f, "%s\n%d\n%d\n",   skijasi[i].ime,
  41.                                     &skijasi[i].godiste,
  42.                                     &skijasi[i].brzina,
  43.                                     &skijasi[i].broj_zicare);
  44.         skijasi[i].vreme_cekanja = 0;
  45.     }
  46.     fclose(f); 
  47. }
  48.  
  49. void OdrediCekanje( zicara zicare[], int broj_zicara, skijas skijasi[], int broj_skijasa)
  50. {
  51.     int i, j, proteklo_vreme, trenutna_zicara;
  52.     for( i=0, trenutna_zicara = 0; i < broj_skijasa; i++)
  53.     {
  54.         for( j=trenutna_zicara; j < broj_zicara; j++, proteklo_vreme += zicare[i].delay)
  55.         {
  56.             if( j+1 == skijasi[i].broj_zicare)
  57.             {
  58.                 skijasi[i].vreme_cekanja = proteklo_vreme;
  59.                 proteklo_vreme += zicare[i].delay;
  60.                 trenutna_zicara = j;
  61.                 j++;
  62.                 break;
  63.             }
  64.         }
  65.         if( j == broj_zicara)
  66.             j=0;
  67.     }
  68. }
  69.  
  70. void Ispis( zicara zicare[], int broj_zicara, skijas skijasi[], int broj_skijasa)
  71. {
  72.     int i;
  73.     printf("Zicare:\n");
  74.     for( i = 0; i < broj_zicara; i++)
  75.         printf("Rastojanje: %d\nBrzina: %d\nDelay: %d\n\n", zicare[i].rastojanje,
  76.                                                             zicare[i].brzina,
  77.                                                             zicare[i].delay);
  78.     printf("\nSkijasi:\n");
  79.     for( i = 0; i < broj_skijasa; i++)
  80.         printf("Ime: %s\nGodiste: %d\nBrzina: %d\nVreme cekanja: %d\n\n",   skijasi[i].ime,
  81.                                                                             skijasi[i].godiste,
  82.                                                                             skijasi[i].brzina,
  83.                                                                             skijasi[i].vreme_cekanja);
  84. }
  85.  
  86. int main()
  87. {
  88.     int broj_zicara, broj_skijasa;
  89.    
  90.     zicara zicare[50];
  91.     skijas skijasi[50];
  92.     UnosPodataka("1.txt", zicare, &broj_zicara, "2.txt", skijasi, &broj_skijasa);
  93.     OdrediCekanje(zicare, broj_zicara, skijasi, broj_skijasa);
  94.    
  95.     Ispis( zicare, broj_zicara, skijasi, broj_skijasa);
  96.  
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement