sortowanie
Ostatnio zmodyfikowano 2015-11-26 14:53
Anim Temat założony przez niniejszego użytkownika |
sortowanie » 2015-11-26 11:54:12 Cześć. Potrzebuję Waszaj pomocy w sprawie poniższego kodu. Jest to program mający być odpowiedzią na zadanie dotyczące sortowania ze spoja: http://pl.spoj.com/problems/PP0506A/ Według mojego kompilatora, według cpp.sh oraz ideone.com wszystko jest w porządku. Jednak, gdy kompiluję go na spoju, to wyrzuca mi błąd typu "SIGSEGV"... Co może być z poniższym kodem nie tak. Proszę o pomoc. I z góry dziękuję. #include <iostream> #include <algorithm>
using namespace std;
struct date { int p, q; int odleglosc; string a; };
void sortowanie( date * tab, int left, int right );
int main() { int t = 0; cin >> t; while( t-- ) { int liczba_punktow = 0; cin >> liczba_punktow; date * tab = new date[ liczba_punktow ]; for( int i = 0; i < liczba_punktow; i++ ) { cin >> tab[ i ].a; cin >> tab[ i ].p; cin >> tab[ i ].q; tab[ i ].odleglosc =( tab[ i ].p ) *( tab[ i ].p ) +( tab[ i ].q ) *( tab[ i ].q ); } sortowanie( tab, 0, liczba_punktow ); for( int i = 0; i < liczba_punktow; i++ ) { cout << tab[ i ].a << " " << tab[ i ].p << " " << tab[ i ].q << endl; } delete[] tab; } return 0; }
void sortowanie( date * tab, int left, int right ) { int i = left; int j = right; int x = tab[( left + right ) / 2 ].odleglosc; do { while( tab[ i ].odleglosc < x ) i++; while( tab[ j ].odleglosc > x ) j--; if( i <= j ) { swap( tab[ i ], tab[ j ] ); i++; j--; } } while( i <= j ); if( left < j ) sortowanie( tab, left, j ); if( right > i ) sortowanie( tab, i, right ); }
|
|
j23 |
» 2015-11-26 14:44:36 sortowanie( tab, 0, liczba_punktow - 1 ); |
|
Anim Temat założony przez niniejszego użytkownika |
» 2015-11-26 14:53:10 Wielkie dzięki :) Podziałało :) |
|
« 1 » |