stabilo Temat założony przez niniejszego użytkownika |
Program losujący n dat i zapisujący je w tablicy struktur » 2014-01-10 21:03:07 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; };
struct 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"; for( w; w < n; w++ ) { 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; } 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; } } } 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
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. |
|
SeaMonster131 |
» 2014-01-10 21:09:25 Musisz przeciążyć* operator > Poza tym masz kilka błędów takich jak np: cout << D[ w ].d, D[ w ].m, D[ w ].r;
Musisz zrobić tak: cout << a << ", " << b << ", " << c;
Oraz w usuń słówko struct. * Nie "przeładować", wybacz ;) |
|
stabilo Temat założony przez niniejszego użytkownika |
» 2014-01-10 21:17:40 Jak mam przeciążyć ( :D ) ten operator bo nie rozumiem. To skoro tam jest źle to tutaj też źle zrobiłem ( na C się wzorowałem ).
for( q; q < n; q++ ) { cout << "Wygenerowana data to: "; cout << D[ q ].d, D[ q ].m, D[ q ].r; cout << endl;
Jak powinno być ? |
|
« 1 » |