Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

funkcje a sortowanie babelkowe

Ostatnio zmodyfikowano 2011-05-20 00:21
Autor Wiadomość
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...
C/C++
#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;
}
P-33213
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
C/C++
int sortowanie( tablica, wynik, wynik, 0 );
jeśli chcesz wywołać funkcję to powinieneś napisać
C/C++
sortowanie( tablica, wynik, wynik, 0 );
P-33214
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 ?:)
P-33215
DejaVu
» 2011-05-20 00:10:43
Generalnie uczyć się, uczyć, uczyć uczyć i ble... :P
P-33216
Irokezkez
Temat założony przez niniejszego użytkownika
» 2011-05-20 00:17:56
Oto moje wypociny ;D Zamykam ;))

C/C++
#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;
}
P-33217
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)
C/C++
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
C/C++
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;
    }
P-33218
DejaVu
» 2011-05-20 00:21:12
Standardowe funkcje sortujące jakie masz do dyspozycji to:
Dokumentacja
sortSortuje elementy w podanym zakresie. (szablon funkcji)
qsortWykonuje algorytm szybkiego sortowania (ang. quicksort). (funkcja)
P-33219
« 1 »
  Strona 1 z 1