Matura z maja 2011 zad.4
Ostatnio zmodyfikowano 2013-10-23 12:33
Lanc Temat założony przez niniejszego użytkownika |
Matura z maja 2011 zad.4 » 2013-10-23 12:07:05 #include <iostream> #include <fstream> using namespace std;
int main() { fstream plik; plik.open( "hasla.txt", std::ios::in | std::ios::out ); string hasla; if( plik.good() == true ) { cout << "Uzyskano dostep do pliku!" << endl; } else cout << "Dostep do pliku zostal zabroniony!" << endl; int palindrom = 0; int dlugosc = 0; bool dobrze = 1; while( !plik.eof() ) { dobrze = true; getline( plik, hasla ); dlugosc = hasla.length(); for( int i = 0; i < dlugosc / 2; i++ ) { if( hasla[ i ] == hasla[ dlugosc - 1 ] ) dlugosc--; else { dobrze = false; break; } } if( dobrze == true ) palindrom++; } cout << palindrom; return 0; }
Otrzymuje wynik 15,a powinien wyjść 13. Oto lista haseł: adghgd ajakok akokos amkoku amodda aokor aokormn apraw asprz awaspr bgsbg bgsbgfs bgsbgfsj bimbam bazar bkjbg bkjbgsb bnsun balon bnsunru cikkaj damkok damod damodd dasdfg ddamk ddamko dfbkj dfbkjbg dfghjh dghgda drty dompmod eraz edamo edamod erynap fbkjbgs fbkjbgsb fghjhg gdasdf ghdfbkjb ghgdas ghjhgf goryl grafarg hdfbkjb hdfbkjbg hgfds hilary iek isksad iughd jbgsbgf jbgsbgfs jhgfds jkaokor jkaokorm jkjkaok jkjkaoko kadrty kajak keryn kisksa kjbgsbg kjbgsbgf kjkaoko kjkaokor kkadrt kkajak kkkadr kkkke kkompo klwiek kokoso kokuuo komok kompiel kompo kompoc kompok kompoot kompooto kompost kompot komput komu komunikat kormnbn ksadgh kurek kuuok matam mkokuu mnbns mnbnsun mnbnsunr moddam mpokk mpokkk mpokko mpokraz mpoopm mpoot mpootoo mpootoot mpouiuopm mputer napraw nbnsu nbnsunr nruiu nruiugh nruiughd nsunruiu oddo okisks okkkad okkomp okormnb okulary omnibus omo ompioroip ompoci ompokk ompooto ompootoo ootoj ootojkj ootojkjk ootooto ootootoj ormnb otojk otojkjk otoot otootoj pikole pocikk pokaz pokkka pokop pokraja pokrzywa pole1 ponton pooto pootoot prawas putery rawasp rmnbnsu rmnbnsun ruiughd ruiughdf rzeda rzedam sokisk sprze sprzed sunruiu sunruiug teryna tojkj tojkjka tojkjkao tooto tootojk ughdf ughdfbk uiughdf uiughdfb unrui unruiug unruiugh uoklw uoklwi uteryn wasprz wasprze wiek ynapra zedamo plkjjklp pokkop przegra poker mops polewa polega komputer komputerek wafelek kolomp plomp plolp jakakd komput kupiec |
|
Mitu |
» 2013-10-23 12:33:58 Przy parzystej liczbie znaków dwa w samym środku nie są porównywane to zawyża wynik o jeden. Kolejny nieistniejący palindrom to pusta linia na początku pliku. Wystarczy poprawić pętlę: for( int i = 0; i < dlugosc; i++ ) { if( hasla[ i ] != hasla[ dlugosc - 1 - i ] ) { dobrze = false; break; } } |
|
« 1 » |