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

Sortowanie tablicy jednowymiarowej.

Ostatnio zmodyfikowano 2015-11-23 00:34
Autor Wiadomość
Morksil
Temat założony przez niniejszego użytkownika
Sortowanie tablicy jednowymiarowej.
» 2015-11-22 23:37:48
Cześć!

Chciałbym wykonać następujące zadanie:

Wczytać znaki do tablicy a[3*N] (N- stała) pomijając podczas wczytywania znaki inne niż małe litery (czyli wymuszając podawanie małych liter), po czym wydrukować tak utworzoną tablicę. Następnie każdą kolejną trójkę sąsiednich znaków w tej tablicy uporządkować niemalejąco i ponownie wydrukować tablicę.

Moj kod jest taki:

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
    const int N=3;
    char tablica[3*N];
    char element;
    for(int i=0;i<(3*N);i++)
    {
        do
        {
            cout << "Wprowadz znak do tablicy: ";
            cin  >> element;
        }while(!(element>='a' && element<='z'));
        tablica=element;
    }
    for(int i=0;i<(3*N);i++)
    {
        cout << tablica << "\t";
    }
    cout << endl << endl;
    for(int i=0;i<(3*N-1);i++)
    {
        for(int j=0;j<(3*N-1-i);j++)
        {
            if(tablica[j]>tablica[j+1])
            {
                char tmp=tablica[j+1];
                tablica[j+1]=tablica[j];
                tablica[j]=tmp;
            }
        }
    }
    for(int i=0;i<(3*N);i++)
    {
        cout << tablica << "\t";
    }

    return 0;
}


Problem tkwi w tym, że program nie sortuje mi trzech sasiadujacych ze soba znakow. Sortuje wszystkie w kolejnosci rosnacej. Prosze o pomoc i o wskazówkę co zrobic, żeby program sortowal mi tylko 3 sasiadujace ze soba elementy tablicy.

[0][1][2][3][4][5]
 -  -  -  -  -  -
<-------><-------> w taki oto sposób zeby w tych klamerkach wykonywało sie sortowanie.

P-140635
Morksil
Temat założony przez niniejszego użytkownika
Problem rozwiązany.
» 2015-11-23 00:34:59
Jeśli ktoś kiedyś będzie miał problem z tym zadaniem to znalazłem rozwiązanie.
Zamieszczam kod:

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
    const int N=3;
    char tablica[3*N];
    char element;
    for(int i=0;i<(3*N);i++)
    {
        do
        {
            cout << "Wprowadz znak do tablicy: ";
            cin  >> element;
        }while(!(element>='a' && element<='z'));
        tablica=element;
    }
    for(int i=0;i<(3*N);i++)
    {
        cout << tablica << "\t";
    }
    cout << endl << endl;
    for(int i=0;i<(3*N-1);i++)
    {
        for(int j=3*N-3*(i+1);j<(3*N-1-3*i);j++)
        {
            if(tablica[j]>tablica[j+1])
            {
                char tmp=tablica[j];
                tablica[j]=tablica[j+1];
                tablica[j+1]=tmp;
            }
        }
    }
    for(int i=0;i<(3*N);i++)
    {
        cout << tablica << "\t";
    }

    return 0;
}
P-140637
« 1 »
  Strona 1 z 1