prometheus800

Железничка станица C++

Mar 22nd, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.19 KB | None | 0 0
  1. /*
  2. Железничка станица Problem 2 (0 / 0)
  3. Да се креира структура Воз во која се чуваат податоци за релацијата по која се движи возот (низа од најмногу 50 знаци), предвиден бројот на километри што треба да се поминат (реален број), како и бројот на патници во возот (цел број).
  4.  
  5. Потоа да се креирa структура ZeleznickaStanica во која се чуваат податоци за градот во кој се наоѓа (низа од 20 знаци), низа од возови што поаѓаат од станицата (најмногу 30) и бројот на возови (цел број).
  6.  
  7. Треба да се направи функција со потпис
  8.  
  9. void najkratkaRelacija(ZeleznickaStanica* zs, int n, char* grad)
  10. во која се печати релацијата и бројот на километри на возот што поминува најкратка релација (најмалку километри), а поаѓа од железничката станица од градот што се проследува како влезен аргумент. Ако има повеќе возови со ист најмал број на километри, да се испечати релацијата на последниот таков.
  11.  
  12. Забелешка: Задачата да се реши во програмскиот јазик C++
  13. */
  14.  
  15. #include<iostream>
  16. #include <cstring>
  17. using namespace std;
  18.  
  19.  
  20. typedef struct Voz{
  21.     char relacijaVoz[50];
  22.     float brojKilometri;
  23.     int brojPatnici;
  24. }Voz;
  25.  
  26. typedef struct ZeleznickaStanica{
  27.     char zeleznickaGrad[20];
  28.     Voz vozovi[30];
  29.     int brojVozovi;
  30. }ZeleznickaStanica;
  31.  
  32. void najkratkaRelacija(ZeleznickaStanica* zs, int n, char* grad){
  33.     float minKilometri=99999;
  34.     int i=0,j=0,idStanica=0,idVoz=0;
  35.     for(i = 0; i < n; i++){
  36.         if(strcmp(zs[i].zeleznickaGrad,grad) == 0){
  37.                 for(j = 0; j < zs[i].brojVozovi; j++){
  38.                     if(zs[i].vozovi[j].brojKilometri <= minKilometri){
  39.                         minKilometri = zs[i].vozovi[j].brojKilometri;
  40.                         idVoz = j;
  41.                     }
  42.                 }
  43.             idStanica = i;
  44.         }
  45.     }
  46.     cout << "Najkratka relacija: " << zs[idStanica].vozovi[idVoz].relacijaVoz << " (" << minKilometri << " km)" << endl;
  47. }
  48.  
  49.  
  50. int main(){
  51.  
  52.     int n;
  53.     cin>>n; //se cita brojot na zelezlnichki stanici
  54.  
  55.     ZeleznickaStanica zStanica[100];
  56.     for (int i=0;i<n;i++){
  57.         //se citaat infomracii za n zelezlnichkite stanici i se zacuvuvaat vo poleto zStanica
  58.         cin >> zStanica[i].zeleznickaGrad;
  59.         cin >> zStanica[i].brojVozovi;
  60.             for (int j = 0; j < zStanica[i].brojVozovi; j++){
  61.                 cin >> zStanica[i].vozovi[j].relacijaVoz;
  62.                 cin >> zStanica[i].vozovi[j].brojKilometri;
  63.                 cin >> zStanica[i].vozovi[j].brojPatnici;
  64.         }
  65.     }
  66.  
  67.     char grad[25];
  68.     cin>>grad;
  69.  
  70.     najkratkaRelacija(zStanica,n,grad);
  71.     return 0;
  72. }
Add Comment
Please, Sign In to add comment