piroman88 Napisano Luty 28, 2008 Zgłoś Share Napisano Luty 28, 2008 Moje pytanie dotyczy sortowania stringow a wiec wszystko ladnie oile sortuje ciagi liter ale gdy pojawiaja sie cyfry to juz nic nie wyglada ladnie No wiec urzylem prostego sortowania babelkowego bo chodzi o posortowanie doslownie kilkunastu stringow. Zrobilem to w ten sposob: //... //-----------wczytywanie----------------- string linia[50]; int a=1; fstream wczytywanie("wyniki.wyn"); while( getline( wczytywanie, linia[a])){ a++; } wczytywanie.close(); //-----------sortowanie------------------- string nowa_linia; for( int i=1; i<a-1; i++){ for( int b=1; b<a-1; b++){ if(linia[i].compare(linia[i+1])==1){ nowa_linia = linia[i]; linia[i] = linia[i+1]; linia[i+1] = nowa_linia; } } } //... w pliku "wyniki.wyn" sa zapisane takie ciagi znakow: ... 0002 imie1 0023 imie2 0004 imie3 0231 imie4 ... Wiec prosze o pomoc w jaki sposob moge posortowac te stringi. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Luty 28, 2008 Zgłoś Share Napisano Luty 28, 2008 prosze dopasowac temat do regulaminu pozatyn to sortowanie to jakies dziwne powinno byc cos ala: (pseudo kod) for(t =0; t for(y = t; y if (item[t] Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
piroman88 Napisano Luty 28, 2008 Autor Zgłoś Share Napisano Luty 28, 2008 Ale o dziwo dzialalo Poprawione: //-----------sortowanie------------------- string nowa_linia; for( int i=1; i<a-1; i++){ for( int b=i; b<a-1; b++){ if(linia[i].compare(linia[b])==1){ swap(linia[i], linia[b]); } } } Ale niestety nadal nie chce posortowac cyfr z tego stringu... Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Luty 29, 2008 Zgłoś Share Napisano Luty 29, 2008 nom bo indexuje sie w c++ od 0 (patrz na moj przyklad) masz zle granice 1) od 0 a nie od 1 2) nie do Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.