Reklama
Pokazuje wyniki od 1 do 9 z 9

Temat: C++ Sortowanie stringów.

  1. #1
    Avatar Kokolik
    Data rejestracji
    2007
    Posty
    241
    Siła reputacji
    17

    Domyślny C++ Sortowanie stringów.

    Dobry wieczór Państwu!

    Przychodzę do was z pewną prośbą odnośnie programu w języku C++.

    Program ma działać następująco:
    Uzytkownik wpisuje trzy wyrazy, program liczy ilość znaków w każdym wyrazie, pokazuje który wyraz zawiera najwięcej znaków oraz ile ich jest.

    Sam napisałem coś takiego:

    #include <iostream>
    #include <string>

    using namespace std;

    int main()
    {
    string lancuch1;
    cout << "Wpisz pierwszy wyraz : ";
    cin >> lancuch1;
    cout << "ilosc znakow w tym slowie to: " << lancuch1.size() << endl;

    string lancuch2;
    cout << "Wpisz drugi wyraz : ";
    cin >> lancuch2;
    cout << "ilosc znakow w tym slowie to: " << lancuch2.size();

    string lancuch3;
    cout << "Wpisz trzeci wyraz : ";
    cin >> lancuch3;
    cout << "Ilosc znakow w tym slowie to: " << lancuch3.size();

    }


    Teraz potrzebuję, żeby program mi posortował te wyrazy w kolejności liczby znaków w każdym i wydrukował wynik.
    Kod programu musi być maksymalnie prosty, nie krótki. Im banalniej, tym lepiej.
    Masterpiece

  2. #2
    Avatar Rollercoster
    Data rejestracji
    2011
    Wiek
    29
    Posty
    1,247
    Siła reputacji
    14

    Domyślny

    Zrób sobie coś takiego:
    if(lancuch3.size() > lancuch2.size() && lancuch3.size() > lancuch1.size() )
    cout << "Numer 3" << endl;

    i tak dla każdego, jak chcesz to możesz jeszcze uwzględnić czy są równe.

  3. Reklama
  4. #3
    Avatar Maciek_1993
    Data rejestracji
    2006
    Posty
    2,483
    Siła reputacji
    19

    Domyślny

    Cytuj Rollercoster napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Zrób sobie coś takiego:
    if(lancuch3.size() > lancuch2.size() && lancuch3.size() > lancuch1.size() )
    cout << "Numer 3" << endl;

    i tak dla każdego, jak chcesz to możesz jeszcze uwzględnić czy są równe.
    na forach nie będzie łatwiej?

    Kod:
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
    	const int rozmiar=3;
    	string lancuch[rozmiar];
    	for(int i=0;i<rozmiar;i++)
    	{
    	cout<<"Wpisz "<<i+1<<" wyraz"<<endl;
    	cin>>lancuch[i];
    	}
    	for(int i=0;i<rozmiar;i++)
    	{
    		cout<<i+1<<" Slowo to: "<<lancuch[i]<<" ilosc jego znakow to: "<<lancuch[i].length()<<endl;
    	}
    	for (int j=0;j<rozmiar;j++)
    	{
    	for(int i=0;i<rozmiar-j-1;i++)
    	{
    	if(lancuch[i].length() > lancuch[i+1].length())
    	{
    		swap(lancuch[i],lancuch[i+1]);
    	}
    	}
    }
    	cout<<"Wyrazy po sortowaniu:"<<endl;
    	for(int i=0;i<rozmiar;i++)
    	{
    		cout<<i+1<<" Slowo po sortowaniu to: "<<lancuch[i]<<" ilosc jego znakow to: "<<lancuch[i].length()<<endl;		
    	}
    }
    Ostatnio zmieniony przez Maciek_1993 : 19-11-2014, 20:06

  5. #4
    Avatar Kokolik
    Data rejestracji
    2007
    Posty
    241
    Siła reputacji
    17

    Domyślny

    Oba sposoby są okej, tylko program ma SORTOWAĆ.

    Np. dane są wyrazy:
    pi
    pie
    piec

    Program ma posortować te wyraz od tego o najwiekszej liczbie znakow do tego o najmniejszej liczbie znakow.

    Wynikiem tego programu powinno byc

    Piec - 4
    Pie - 3
    Pi - 2
    Masterpiece

  6. #5
    Avatar Absherr
    Data rejestracji
    2008
    Położenie
    Kraków
    Posty
    578
    Siła reputacji
    16

    Domyślny

    Zrób jakiegoś bubble sorta, z porówanywaniem długości stringów.
    for i ...
    for j...
    if len(string[i]) > len(string[j])
    swap



    EDIT:
    Masz zawsze tylko trzy stringi?
    To ifki ;d
    Ostatnio zmieniony przez Absherr : 19-11-2014, 19:47

  7. #6
    Avatar Maciek_1993
    Data rejestracji
    2006
    Posty
    2,483
    Siła reputacji
    19

    Domyślny

    Cytuj Kokolik napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Oba sposoby są okej, tylko program ma SORTOWAĆ.

    Np. dane są wyrazy:
    pi
    pie
    piec

    Program ma posortować te wyraz od tego o najwiekszej liczbie znakow do tego o najmniejszej liczbie znakow.

    Wynikiem tego programu powinno byc

    Piec - 4
    Pie - 3
    Pi - 2
    sprawdź teraz bo się zajebałem wcześniej ;d
    Jak chcesz w drugą stronę sortować to sobie zmień tylko znak przy sortowaniu
    Ostatnio zmieniony przez Maciek_1993 : 19-11-2014, 19:52

  8. #7
    Avatar Kokolik
    Data rejestracji
    2007
    Posty
    241
    Siła reputacji
    17

    Domyślny

    Cytuj Maciek_1993 napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    sprawdź teraz bo się zajebałem wcześniej ;d
    Jak chcesz w drugą stronę sortować to sobie zmień tylko znak przy sortowaniu
    Skontaktuje się z Tobą na priv.
    Masterpiece

  9. #8
    Avatar Kusterek
    Data rejestracji
    2013
    Położenie
    Warszawa
    Wiek
    31
    Posty
    1,710
    Siła reputacji
    13

    Domyślny

    Zerznij z neta jakis gotowy algorytm sortowania tylko nie porównuj tab[i] tylko tab[i].length()

    irc: freenode.net in #torgdevs

  10. #9
    Avatar Killavus
    Data rejestracji
    2005
    Położenie
    Wrocław
    Wiek
    32
    Posty
    915
    Siła reputacji
    19

    Domyślny

    Możesz skorzystać z wbudowanej funkcji std::sort z modułu <algorithm>.

    Sygnatura jest następująca:

    std::sort(początek_kolekcji, koniec_kolekcji, komparator)

    Komparator to klasa z przeciążonym operatorem ():

    Kod:
    struct Comparator {
      bool operator()(const std::string& left, const std::string& right) {
         return left.length() < right.length();
      }
    }
    Operator ten ma zwrócić prawdę, gdy pierwszy element jest mniejszy od drugiego. Przynajmniej o ile dobrze pamiętam jak to się w C++ robiło ;)...

    Pozdrawiam
    Killavus

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. js sortowanie tablicy dwuwymiarowej
    Przez BBsrv w dziale Programowanie
    Odpowiedzi: 2
    Ostatni post: 05-02-2017, 01:22
  2. [C++] Sortowanie stringów reprezentujących godzinę
    Przez Rzulf w dziale Programowanie
    Odpowiedzi: 7
    Ostatni post: 27-05-2015, 22:34
  3. [C] Sortowanie przez znajdowanie max.
    Przez Ada$ Zawodowiec w dziale Programowanie
    Odpowiedzi: 9
    Ostatni post: 02-04-2014, 18:45
  4. Rozkmina-mail box-sortowanie loota
    Przez billy w dziale Tibia
    Odpowiedzi: 1
    Ostatni post: 05-12-2012, 20:29
  5. PS3 - sortowanie gier wg. zajebistości
    Przez camile w dziale Inne gry
    Odpowiedzi: 0
    Ostatni post: 06-05-2012, 17:28

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •