W szkole zadali nam takie zadanko :
Napisz program, który wylosuje n dat i zapisze je w tablicy struktur Data, a następnie posortuje te daty od najwcześniejszej lub od ostatniej.
Mam takie coś:
#include <iostream>
#include <ctime>
#include <windows.h>
using namespace std;
struct Data{
int d,m,r;
};
Data D[100], H;
struct Miesiac{
int dni;
char *tekst;
};
struct Miesiac Tab[12]={
{31,"styczen"},
{28,"luty"},
{31,"marzec"},
{30,"kwiecień"},
{31,"maj"},
{30,"czerwiec"},
{31,"lipiec"},
{31,"sierpien"},
{30,"wrzesien"},
{31,"pazdziernik"},
{30,"listopad"},
{31,"grudzien"}
};
int main()
{
int n,w=0,x=0,z=1,q=0;
cout<<"Podaj ilosc dat do wylosowania: ";
cin>>n;
srand(time(0));
cout<<"\n";
//losowanie
for (w; w<n; w++){
//a=zakres_dolny+rand()%(zakres_gorny-zakres_dolny+1)
D[w].r=(-5000)+rand()%(5000-(-5000)+1);
D[w].m=1+rand()%(12-1+1);
D[w].d=1+rand()%(Tab[D[w].m-1].dni-1+1);
cout<<"Wygenerowana data to: ";
cout << D[ w ].d, D[ w ].m, D[ w ].r;
cout<<endl;
}
//sortowanie
for (x; x<n; x++){
for (z; z<n; z++){
if (D[x]>D[z]){
H=D[z];
D[z]=D[x];
D[x]=H;
}
}
}
//wyswietlanie
for (q; q<n; q++){
cout<<"Wygenerowana data to: ";
cout<<D[q].d, D[q].m, D[q].r;
cout<<endl;
}
system("pause");
return 0;
}
Błąd jest podczas sortowania
//sortowanie
for (x; x<n; x++){
for (z; z<n; z++){
if (D[x]>D[z]){
H=D[z];
D[z]=D[x];
D[x]=H;
}
}
}
Błąd:
|64|error: no match for 'operator>' (operand types are 'Data' and 'Data')|
Z góry dziękuję za pomoc.