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!