sortowanie
Ostatnio zmodyfikowano 2014-11-10 18:33
bolones Temat założony przez niniejszego użytkownika |
sortowanie » 2014-11-10 17:14:37 Witajcie! #include <iostream>
using namespace std;
void moja_funkcja() { cout << "[1] - obliczenie wybranego wyrazu ciagu fibonacciego" << endl; cout << "[2] - sortowanie babelkowe" << endl; cout << "[0] - wyjscie z programu" << endl; } void ciag_fibonacciego() { int t[ 10000 ]; int n; cout << "podaj ktory wyraz ciagu fibonacciego chcesz obliczyc" << endl; cin >> n; t[ 0 ] = 0; t[ 1 ] = 1; for( int i = 2; i <= n; i++ ) { t[ i ] = t[ i - 1 ] + t[ i - 2 ]; } cout << t[ n ] << endl; }
void Sortowanie( int tab[ 5 ] ) { cout << "wprowadz liczby " << endl; for( int i = 0; i < 5; i++ ) { cin >> tab[ i ]; } for( int i = 0; i < 5; i++ ) { for( int j = 0; j < 5 - 1; j++ ) { if( tab[ j ] < tab[ j - 1 ] ) { int bufor; bufor = tab[ j - 1 ]; tab[ j - 1 ] = tab[ j ]; tab[ j ] = bufor; } } } }
int main()
{ cout << "w programie sa dostepne nastepujace opcje:" << endl; moja_funkcja(); int liczba; do { cin >> liczba; switch( liczba ) { case 1: ciag_fibonacciego(); break; case 2: Sortowanie( int tab[ 5 ] ); break; default: break; } } while( liczba != 0 ); return 0; }
Mam problem z tym żeby wywolac funkcje "Sortowanie", wyskakuje mi błąd 'expected primary expresion before int' w linijce gdzie wywoluje funkcje w main. Moglby mi ktoś wytlumaczyc jak się poprawnie powinno wywolywac funkcje? Spotkalem się również z czyms takim 'int*tab' http://miroslawzelent.pl/wyklady/sortowanie-babelkowe-bubble-sort.pdf o co chodzi ? pozdrawiam |
|
Atexor |
» 2014-11-10 18:02:02 Witaj, Nazwa tablicy jest jednocześnie wskaźnikiem na jej pierwszy element. Pan Zelent w swoim przykładzie przekazał do funkcji sortowania wskaźnik na pierwszy element tablicy oraz ilość elementów. U Ciebie zaś problem głównie polega na tym, że tablicę deklarujesz w trakcie przekazania jej do funkcji co jest niedozwolone. Najlepiej zadeklaruj ją wcześniej, a potem przekaż 2 argumenty do funkcji - samą tablicę oraz jej rozmiar. Tutaj masz to dokładniej wyjaśnione: http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Przekazywanie-tablic-jednowymiarowych-do-funkcji/324 |
|
bolones Temat założony przez niniejszego użytkownika |
. » 2014-11-10 18:20:43 #include <iostream>
using namespace std;
void moja_funkcja() { cout << "[1] - obliczenie wybranego wyrazu ciagu fibonacciego" << endl; cout << "[2] - sortowanie babelkowe" << endl; cout << "[0] - wyjscie z programu" << endl; } void ciag_fibonacciego() { int t[ 10000 ]; int n; cout << "podaj ktory wyraz ciagu fibonacciego chcesz obliczyc" << endl; cin >> n; t[ 0 ] = 0; t[ 1 ] = 1; for( int i = 2; i <= n; i++ ) { t[ i ] = t[ i - 1 ] + t[ i - 2 ]; } cout << t[ n ] << endl; }
void Sortowanie() { int tab[ 5 ]; cout << "wprowadz liczby " << endl; for( int i = 0; i < 5; i++ ) { cin >> tab[ i ]; } for( int i = 0; i < 5; i++ ) { for( int j = 0; j < 5; j++ ) { if( tab[ j ] < tab[ j - 1 ] ) { int bufor; bufor = tab[ j - 1 ]; tab[ j - 1 ] = tab[ j ]; tab[ j ] = bufor; } } } for( int k = 0; k < 5; k++ ) { cout << tab[ k ]; } }
int main()
{ cout << "w programie sa dostepne nastepujace opcje:" << endl; moja_funkcja(); int liczba; do { cin >> liczba; switch( liczba ) { case 1: ciag_fibonacciego(); break; case 2: Sortowanie(); break; default: break; } } while( liczba != 0 ); return 0; }
Costam poprawiłem, ale teraz, niby algorytm do sortowania poprawny, jednakże przy kompilacji program pokazuje jakies kosmiczne liczby.. POMOCY ; ( |
|
Atexor |
» 2014-11-10 18:26:41 Nie rozdzielasz wyświetlonych liczb i Ci się zlewa w jedno.
Na końcu funkcji Sortowania zmień wyświetlanie na np.: cout << tab[ k ]<<" "; |
|
docentpp |
» 2014-11-10 18:32:21 Wychodzisz poza zakres tablicy w sortowaniu !!!!! for( int j = 0; j < 5; j++ ) { if( tab[ j ] < tab[ j - 1 ] )
|
|
bolones Temat założony przez niniejszego użytkownika |
. » 2014-11-10 18:33:43 Ok super, dzięki :) poczytam to co mi wysłałeś. Temat zamknięty |
|
« 1 » |