Porównywanie obiektów struktur

0

Witam!

Piszę program, który losuje informacje o 20 filmach (tytuł, reżyser, rok produkcji, czas trwania) i zapisuje w tablicy o typie zdefiniowanym przez moją strukturę, a następnie znajduje najstarszy i najdłuższy film.

Oto kod:

#include<iostream>
#include<string>
using namespace std;

int main()
{
    srand(time(NULL));
    struct film
    {
        string tytul;
        string rezyser;
        int rok;
        int czas;     
    };
    
    film lista[20];
    film *wsk=lista;
    
    for (int i=0; i<20; i++)
    {
        for (int k=0; k<5; k++)
            wsk->tytul+=(rand()%58+65);
        
        for (int k=0; k<5; k++)
            wsk->rezyser+=rand()%58+65;
        
            wsk->rok = rand()%100+1920;
            wsk->czas = rand()%110+50;
            
        wsk++;
    }
    wsk=lista;
    film pomoc;
    pomoc.rok=5000; //oznaczam dużą liczbę, żeby pozniej znalesc najmniejsza wartosc roku
    
    film *srok = &pomoc; //wskaznik srok wskazuje na pomoc, gdzie w pomoc.rok znajduje sie 5000
    film *nczas = lista; //nczas wskazuje na pierwszy element tablicy filmow
    
    for (int i=0; i<20; i++)
    {
        cout<< wsk->rezyser <<" "<< wsk->tytul <<" "<< wsk->rok <<" "<< wsk->czas <<endl;
        
        if (*srok > wsk->rok) srok = wsk; //jezeli wartosc tego co wskazuje srok jest wieksza od roku aktualnie przerabianego filmu, to srok niech wskazuje tam gdzie pokazuje wsk
        if (*nczas < wsk->czas) nczas = wsk; //jezeli wartosc tego co pokazuje nczas jest mniejsza od dlugosci filmu aktualnie przerabianego, to niech nczas pokazuje tam gdzie wsk
        
        wsk++; //przechodzi do nastepnego indeksu tablicy "lista"
    }
    
    cout<<"Najstarszy film: "<<endl;
    cout<<cout<< srok->rezyser <<" "<< srok->tytul <<" "<< srok->rok <<" "<< srok->czas <<endl<<endl;
    
    cout<<"Najdluzszy film: "<<endl;
    cout<< nczas->rezyser <<" "<< nczas->tytul <<" "<< nczas->rok <<" "<< nczas->czas <<endl;
    


    cin.ignore();
    getchar();
    return 0;
}

Tytuły i nazwiska reżyserów to bezsensowne losowe 5 znaków.
Program dobrze losuje i wypisuje informacje o filmach, ale gorzej ze znajdowaniem najstarszego filmu i najdłuższego.

tutaj:

if (*srok > wsk->rok) srok = wsk;
if (*nczas < wsk->czas) nczas = wsk;

wyskakują błędy:
43: no match for 'operator>' in '*srok > wsk->main()::film::rok'
44: no match for 'operator<' in '*nczas < wsk->main()::film::czas'

Jak porównać wskaźniki wsk->rok i wsk->czas???

Proszę o pomoc!
Pozdrawiam!

0
film *srok = &pomoc; //wskaznik srok wskazuje na pomoc, gdzie w <b>pomoc.rok</b> znajduje sie 5000

Więc samo srok to wskaźnik do FILM a nie do inta. Jak chcesz potem porównać obiekt typu Film z obiektem int? o_O

if (srok->rok > wsk->rok)
  srok = wsk;

Drugi problem jest taki sam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1