Irokezkez Temat założony przez niniejszego użytkownika |
funkcje a sortowanie babelkowe » 2011-05-19 23:43:21 Witam, nie mogę znaleźć błędu. Kompilator wywala mi ostatni wiersz. Bez funkcji sortowanie wszystko ładnie śmiga. Pierwsza funkcja pyta o liczby, druga funkcja wypisuje, trzecia sortuje, czwarta będzie wypisywać posortowane... #include <cstdlib> #include <iostream>
using namespace std;
int funkcja( int a[], int b, int d = 0 ) { cout << "Podaj liczby " << endl; for( int d = 0; d < b; d++ ) { cin >> a[ d ]; } } int wypis( int a[], int b, int d ) { cout << "Oto twoje liczy " << endl; for( int d = 0; d < b; d++ ) { cout << a[ d ] << " "; } } int sortowanie( int a[], int b, int d, int temp ) { for( d = 0; d <= b; d++ ) for( d = 0; d <= b; d++ ) if( a[ d ] > a[ d + 1 ] ) { temp = a[ d ]; a[ d ] = a[ d + 1 ]; a[ d + 1 ] = temp; } }
int main( int argc, char * argv[] ) { bool zmiana; cout << "ile liczb ?" << endl; int b, pierwsza; cin >> b; int tablica[ b ]; int wynik = funkcja( tablica, b ); int koniec = wypis( tablica, wynik, wynik ); int sortowanie( tablica, wynik, wynik, 0 ); system( "PAUSE" ); return EXIT_SUCCESS; }
|
|
ison |
» 2011-05-19 23:47:13 wrzuć kod w znacznikach [cpp][/cpp] jeśli deklarujesz funkcję int nazwa(...) to ta funkcja musi zwracać zmienną typu int, a Twoja nic nie zwraca int sortowanie( tablica, wynik, wynik, 0 );
|
jeśli chcesz wywołać funkcję to powinieneś napisać sortowanie( tablica, wynik, wynik, 0 );
|
|
Irokezkez Temat założony przez niniejszego użytkownika |
» 2011-05-19 23:54:49 Dzięki bardzo za szybką odpowiedź. Geniusz jesteś :)) Nocne kompilowanie za dobrze mi nie wychodzi ;)) Postaram się więcej nie zawracać głowy duperelami. Jeszcze raz wielkie dzięki. Aha, masz może jeszcze jakąś rade jak uprościć sobie życie ?:) |
|
DejaVu |
» 2011-05-20 00:10:43 Generalnie uczyć się, uczyć, uczyć uczyć i ble... :P |
|
Irokezkez Temat założony przez niniejszego użytkownika |
» 2011-05-20 00:17:56 Oto moje wypociny ;D Zamykam ;)) #include <cstdlib> #include <iostream>
using namespace std;
int wpisywanie( int a[], int b, int d = 0 ) { cout << "Podaj liczby " << endl; for( int d = 0; d < b; d++ ) { cin >> a[ d ]; } } int wypisywanie( int a[], int b, int d ) { cout << "Oto twoje liczy " << endl; for( int d = 0; d < b; d++ ) { cout << a[ d ] << " "; } } int sortowanie( int a[], int b, int d, int temp, int e ) { for( d = 0; d <= b + 1; d++ ) for( e = 0; e <= b + 1; e++ ) if( a[ e ] > a[ e + 1 ] ) { temp = a[ e ]; a[ e ] = a[ e + 1 ]; a[ e + 1 ] = temp; } }
int posortowane( int a[], int b, int d ) { cout << endl; cout << "Posortowane liczby "; for( int d = 0; d < b - 1; d++ ) { cout << a[ d ] << " "; } cout << endl; } int main( int argc, char * argv[] ) { int b; cout << "ile liczb ?" << endl; cin >> b; int tablica[ b ]; int pierwsza = wpisywanie( tablica, b ); int druga = wypisywanie( tablica, pierwsza, pierwsza ); int trzecia = sortowanie( tablica, pierwsza, pierwsza, 0, 0 ); int czwarta = posortowane( tablica, trzecia, trzecia ); system( "PAUSE" ); return EXIT_SUCCESS; }
|
|
ison |
» 2011-05-20 00:18:33 Aha, masz może jeszcze jakąś rade jak uprościć sobie życie ?:)
|
pierwsza rzecz to sortowanie, o ile nie kazano Wam pisać własnego sorta to dlaczego nie skorzystać z gotowego, który działa szybciej niż ten, który napisałeś? Masz przecież gotową funkcję sort w bibliotece algorithm, nie musisz pisać własnej funkcji 2) int sortowanie( int a[], int b, int d, int temp ) { for( d = 0; d <= b; d++ ) for( d = 0; d <= b; d++ ) if( a[ d ] > a[ d + 1 ] ) { temp = a[ d ]; a[ d ] = a[ d + 1 ]; a[ d + 1 ] = temp; }
niepotrzebnie przekazujesz jako argument zmienną temp skoro i tak ją w funkcji zastępujesz czymś innym, zmienną temp deklaruj w ciele funkcji a nie jako argument jeśli nie chcesz nic zwracać to funkcja powinna mieć typ void void sortowanie( int a[], int b, int d ) { int temp; for( d = 0; d <= b; d++ ) for( d = 0; d <= b; d++ ) if( a[ d ] > a[ d + 1 ] ) { temp = a[ d ]; a[ d ] = a[ d + 1 ]; a[ d + 1 ] = temp; }
|
|
DejaVu |
» 2011-05-20 00:21:12 Standardowe funkcje sortujące jakie masz do dyspozycji to:
Dokumentacja |
---|
sort | Sortuje elementy w podanym zakresie. (szablon funkcji) |
---|
qsort | Wykonuje algorytm szybkiego sortowania (ang. quicksort). (funkcja) |
---|
|
|
« 1 » |