Program z palindromami
Ostatnio zmodyfikowano 2018-09-22 20:48
HamesJetfield Temat założony przez niniejszego użytkownika |
Program z palindromami » 2018-09-21 16:16:19 Dzień dobry, chcę zrobić program, który sprawdzi czy jakaś liczba jest palindromem, a jeżeli nim nie jest, to doda do tej liczby, tą samą liczbę napisaną od tyłu (np. 123+321). Proces dodawania ma trwać dopóki nie otrzymany zostanie palindrom. Na końcu na ekran ma być wypisany otrzymany palindrom. Niestety po uruchomieniu nic nie pojawia się na ekranie. Co zrobiłem źle? Z góry dziękuję za pomoc. #include <iostream> #include <cstdlib> using namespace std;
bool spr( string liczba ) { int a = liczba.length(); int i = 0; while( liczba[ i ] == liczba[ a - i ] && i <= a ) { i++; } if( i == a ) { return true; } else { return false; } } int main() { string liczba = "121"; int pom1, pom2; while( spr( liczba ) == false ) { pom1 = atoi( liczba.c_str() ); for( int i = 0; i < liczba.length() / 2; i++ ) { pom2 = liczba[ i ]; liczba[ i ] = liczba[ liczba.length() - i ]; liczba[ liczba.length() - i ] = pom2; } pom2 = atoi( liczba.c_str() ); pom1 = pom1 + pom2; itoa( pom1,( char * ) liczba.c_str(), 10 ); } cout << liczba; return 0; }
|
|
pekfos |
» 2018-09-21 17:31:36 Niestety po uruchomieniu nic nie pojawia się na ekranie. Co zrobiłem źle? |
Kod zrobiłeś źle. I nastawienie też masz złe. Program po prostu nie działa? Litości.. Wystarczy kilka coutów czy printfów żeby zawęzić problem do konkretnej rzeczy. int i = 0; while( liczba[ i ] == liczba[ a - i ] && i <= a ) |
Źle (dla i = 0 i i = a). liczba[ i ] = liczba[ liczba.length() - i ];
|
Źle (dla i = 0). itoa( pom1,( char * ) liczba.c_str(), 10 );
|
Źle (wiele powodów). Użyj std::to_string(). |
|
HamesJetfield Temat założony przez niniejszego użytkownika |
» 2018-09-22 20:48:00 ok, dziękuję |
|
« 1 » |