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

sortowanie babelkowe tekstu

Ostatnio zmodyfikowano 2015-02-25 12:53
Autor Wiadomość
rikrosfit
Temat założony przez niniejszego użytkownika
sortowanie babelkowe tekstu
» 2015-02-23 19:49:10
Hejka, prosze o poprawienie blędow w programie albo chociaż ich pokazanie i wytlumaczenie w najprostszy mozliwy logiczny sposob,
zadanie: napisz program ktory posortuje tekst bąbelkowo wprowadzony  przez uzytkownika z klawiatury

C/C++
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
void sort_babel( int tab[], string n )
{
    int dl = n.size();
    for( int i = 1; i < dl - 1; i++ )
    {
        for( int j = dl - 1; j >= 1; j-- )
        {
            if( tab[ j ] < tab[ j - 1 ] )
            {
                char pom;
                pom = tab[ j - 1 ];
                tab[ j - 1 ] = tab[ j ];
                tab[ j ] = pom;
            }
        }
    }
}
int main()
{
    string n;
   
    cout << "podaj ciag znakow";
    cin >> n;
    sort_babel( n );
    cout << "posortowany zbior" << n << endl;
   
    system( "pause" );
    return 0;
}
 


błąd: http://scr.hu/3j5r/pf2yf
P-127267
Fireho
» 2015-02-23 19:57:45
Bo wczytujesz napis, a funkcja wymaga tablicy liczb.
Oprócz tego wymaga też drugiego argumentu, który jest napisem.
Oprócz tego nie możesz po prostu zrobić
cout << tablica;
, bo nie spowoduje to wyświetlenia wszystkich elementów tablicy tylko wyświetlenie adresu pierwszego elementu tablicy w pamięci.
P-127268
rikrosfit
Temat założony przez niniejszego użytkownika
» 2015-02-23 19:59:57
to jak mam to zmienic zeby funckaj oczekiwala ciagu znakow a nie liczb ?
P-127270
Fireho
» 2015-02-23 20:02:18
Przecież ty to ustalasz w nagłówku tej funkcji
void sort_babel( int tab[], string n )
 Funkcja która nic nie zwraca, a oczekuje tablicy liczb i napisu.
P-127272
rikrosfit
Temat założony przez niniejszego użytkownika
» 2015-02-23 20:08:14
czyli co mam zmienic void na inta ?
P-127276
Fireho
» 2015-02-23 20:16:09
W tym przykładowym nagłówku
void
 oznacza to co zwraca funkcja(jak
void
 to nic),
int tab[]
 mówi że będzie pierwszym argumentem będzie tablica liczb o nazwie
tab
, a
string n
 że drugim argumentem będzie napis o nazwie
n
. Jak chcesz zmienić typy przyjmowanych argumentów, to musisz zmienić tą część wewnątrz nawiasów.

PS: Sortowanie tekstu FTW
P-127277
aksen
» 2015-02-23 21:01:42
C/C++
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;

void sort_babel( string & tab ) // ---- tu były błędy
{
    int dl = tab.size(); // ---- tu były błędy
    for( int i = 1; i < dl - 1; i++ )
    {
        for( int j = dl - 1; j >= 1; j-- )
        {
            if( tab[ j ] < tab[ j - 1 ] )
            {
                char pom;
                pom = tab[ j - 1 ];
                tab[ j - 1 ] = tab[ j ];
                tab[ j ] = pom;
            }
        }
    }
}
int main()
{
    string n;
   
    cout << "podaj ciag znakow: ";
    cin >> n;
    sort_babel( n );
    cout << "posortowany zbior: " << n << endl;
   
    system( "pause" );
    return 0;
}
P-127283
rikrosfit
Temat założony przez niniejszego użytkownika
» 2015-02-25 12:53:05
sprawdziłem, działa jestem mega wdzieczny dziekuje :)
P-127352
« 1 »
  Strona 1 z 1