• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sortowanie alfabetyczne tablicy stringów

+1 głos
177 wizyt
pytanie zadane 27 września 2018 w C i C++ przez inf123 Nowicjusz (200 p.)

Algorytm ma uporządkować według rosnącej długości stringi, a jeśli  są równej długości to posortować je alfabetycznie. Na początku należy podać liczbę n odpowiadającą za ilość stringów.

Tu mój kod:

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
bool cmp( string a,  string b)
{
       return a<b;
}
bool cmp_2( string a,  string b)
{
    return a.length()<b.length();
}
string x[201];
int main()
{

    int n;
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>x[i];
sort(x,x+n,cmp);
sort(x,x+n,cmp_2);
for(int i=0;i<n;i++)
cout<<x[i]<<endl;
}

I teraz pytanie co jest tutaj źle? Dla przykładowego testu z zadania program działa, ale dla innych już nie. Z góry dzięki za pomoc :).

1 odpowiedź

+1 głos
odpowiedź 27 września 2018 przez adrian17 Mędrzec (199,920 p.)
wybrane 27 września 2018 przez inf123
 
Najlepsza
sort(x,x+n,cmp);
sort(x,x+n,cmp_2);

Najpierw sortujesz alfabetycznie, potem sortujesz po długości. Wynik pierwszego sortowania nie ma więc znaczenia.

komentarz 27 września 2018 przez inf123 Nowicjusz (200 p.)
A jeśli by najpierw posortować przez długość, a potem stringi o tej samej długości posortować alfabetycznie? Bo próbowałem też w ten sposób ale nie zadziałało.
1
komentarz 27 września 2018 przez adrian17 Mędrzec (199,920 p.)
Hint: wystarczy wywołać funkcję sort() raz, a odpowiednio zaadaptować funkcję cmp.
1
komentarz 27 września 2018 przez inf123 Nowicjusz (200 p.)
Dzięki, udało mi się zrobić :).

Podobne pytania

0 głosów
1 odpowiedź 237 wizyt
pytanie zadane 29 grudnia 2018 w Java przez msukiennik Początkujący (360 p.)
0 głosów
1 odpowiedź 115 wizyt
pytanie zadane 10 grudnia 2016 w C i C++ przez Kasztan Dyskutant (8,100 p.)
0 głosów
0 odpowiedzi 59 wizyt
pytanie zadane 26 maja 2018 w C i C++ przez Ala123456 Użytkownik (770 p.)
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

66,526 zapytań

113,290 odpowiedzi

239,931 komentarzy

46,657 pasjonatów

Przeglądających: 295
Pasjonatów: 10 Gości: 285

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...