matka5432 Temat założony przez niniejszego użytkownika |
Wyszukiwanie najkrótszego słowa w tekście » 2012-07-27 17:59:16 Witajcie, to znowu ja z malym problem ;> Nie wiem dlaczego ta funkcja nie dziala tak jak bym chcial, czyli wypisuje na konsole ostatnie slowo z wpisanego przeze mnie tekstu. Po wprowadzeniu tekstu powinna wyszukac najkrotsze slowo, po czym je wyswietlic. Nie wiem jak zrobic, aby tak sie stalo. a oto ona: [ void sortowanie( int iloscSlow ) { int ilosc = 0; do { ilosc++; string napis1; int ilosc2 = 0; int tablica3[ iloscSlow ]; int ktory; do { ilosc2++; tablica3[ ilosc2 ] = tablica[ 0 ][ ilosc2 ].size(); int ilosc3 = 0; int czy = 0; do { ilosc3++; if( tablica3[ ilosc2 ] < tablica3[ ilosc3 ] ) { czy++; if( czy ==( iloscSlow - 1 ) ) { tablica[ 1 ][ 1 ] = tablica[ 0 ][ ilosc2 ]; } } } while( ilosc3 !=( iloscSlow * iloscSlow ) ); } while( iloscSlow != ilosc2 ); } while( ilosc != iloscSlow ); cout << tablica[ 1 ][ 1 ] << endl; } Potrafi ktos powiedziec co jest zle? Zapomnialem dodac, ze "tablica" jest globalna na tablicy[0][n] sa zapisane slowa, ktore powinny zostac zapisane na ta sama tablice tyle, ze: "tablica -->[1]<--[n] i w kolejnosci od najkrotszych do najdluzszych slow. Potem sobie z tym poradze, narazie musze wiedziec, dlaczego nie wypisuje tego co chce. |
|
RazzorFlame |
» 2012-07-27 21:31:20 Po pierwsze NAJKR ÓTSZE sie pisze a nie... Moze daj break; w ifie ktory jest w najbardziej zagniezdzonej petli. |
|
matka5432 Temat założony przez niniejszego użytkownika |
» 2012-07-27 21:59:59 Cholera jasna, a tak rzadko orty robie ;p zapamietam sobie ;p. Zobacze z tym break'iem |
|
matka5432 Temat założony przez niniejszego użytkownika |
» 2012-07-27 22:14:30 Roznie rozlozylem break'i ale nic(wyswietla pierwsze slowo z tekstu), jak do jutra z tym nic nie zrobie, to chyba bede zmuszony zmienic cala podstawe tego kodu, lub napisac go od nowa w inny sposob ;/ |
|
SeaMonster131 |
» 2012-07-27 22:56:28 Jeżeli chcesz sortować słowa, no to możesz skorzystać z: Algorytmy - najłatwiejsze Sortowanie bąbelkowe (ang. bubble sort). Natomiast jeżeli chcesz znaleźć najkrótsze słowo, to masz zmienną w której przechowujesz dane słowo, i porównujesz jej długość z kolejnymi elementami tablicy: string tab[ 5 ] = { "abc", "ab", "a", "abcde", "abcd" };
string wynik = tab[ 0 ];
for( int i = 0; i < 5; i++ ) { if( wynik.length() > tab[ i ].length() ) wynik = tab[ i ]; }
cout << wynik;
|
|
matka5432 Temat założony przez niniejszego użytkownika |
» 2012-07-27 23:54:22 ...niezle to skrociles, nie wpadl bym na takie cos ;) na prawde sprytne ;D wielkie dzieki ;) |
|
matka5432 Temat założony przez niniejszego użytkownika |
Wyszukiwanie najkrótszego słowa w tekście - nadal coś jest nie tak » 2012-07-28 16:30:01 Kurde... program z kursu nie dziala tak jak powinien. Jesli w tekscie znajda sie 2 slowa, ktora maja taka sama ilosc liter, to program trochę źle działa, nie wiem dlaczego. Kilka razy go dokladnie przeanalizowalem,krok po kroku, tak jak komputer. Jak dla mnie program powinien dzialac tak, jak powinien ;] Algorytmy » Sortowanie danych ♦ Sortowanie bąbelkowe (ang. bubble sort)
Czy ktos wie co jest nie tak?
#include <iostream> using namespace std; int main() { cout << "ile slow chcesz wczytac? "; int size; cin >> size; string tab[ size ]; int i = 0; do { cout << "element " << i + 1 << ": "; cin >> tab[ i ]; i++; } while( i != size ); i = 0; for( i = 0; i < size; i++ ) { for( int j = 0; j < size - 1; j++ ) { if( tab[ j ] > tab[ j + 1 ] ) swap( tab[ j ], tab[ j + 1 ] ); } } i = 0; do { cout << tab[ i ] << endl; i++; } while( i != size ); return 0; } |
|
SeaMonster131 |
» 2012-07-28 17:03:15 Jesli w tekscie znajda sie 2 slowa, ktora maja taka sama ilosc liter, to program trochę źle działa |
Co przez to rozumiesz? Bo u mnie program działa prawidłowo. |
|
« 1 » 2 |