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

Palindromy liczbowe. Pętla nie zwraca wartości.

Object Storage Arubacloud
0 głosów
688 wizyt
pytanie zadane 12 listopada 2017 w C i C++ przez Gharte Nowicjusz (120 p.)
edycja 12 listopada 2017 przez Gharte

do
{
    n+=m;
    m=odwroc(n);
    ii++;
}while((n+m)!=odwroc(n+m));

cout<<n+m;

Powyżej problemowy kawałek kodu.
Podany jest przypadek, gdy program ustalił, że liczba nie jest palindromem.
Zaznaczam, że funkcja odwroc() działa poprawnie tzn. faktycznie odwraca liczby np. 58 na 82.

Palindrom - liczba, którą czyta się tak samo od lewej do prawej strony, jak od prawej do lewej np. 121.

Przykładowo, użytkownik podaje liczbę 28, a program ma sprawdzić, czy jest ona palindromem.
Jeśli nie program dodaje do siebie tę liczbę i jej odwrotność tzn. 28 + 82 = 110. Znowu sprawdza, czy jest ona palindromem. Nie jest, więc dodaje do siebie 110 + 011 = 121. Ta liczba jest już palindromem, więc program powinien pokazać ją na ekranie oraz liczbę dodawań potrzebnych do jej uzyskania.

Pętla nic nie zwraca :/ Czemu? Dopiero uczę się programowania.

Podejrzewam, że problem leży w warunku.

2 odpowiedzi

0 głosów
odpowiedź 12 listopada 2017 przez Karol Kluziak Obywatel (1,210 p.)
Zapisałeś "ii++" zamiast "i++"
komentarz 12 listopada 2017 przez Gharte Nowicjusz (120 p.)
zadanie ze spoja - "i" jest zarezerwowane dla "ogólnej" pętli.
komentarz 12 listopada 2017 przez Karol Kluziak Obywatel (1,210 p.)
Sorry nie zauważyłem że napisałem raz. Już poprawiłem
komentarz 12 listopada 2017 przez Karol Kluziak Obywatel (1,210 p.)
Zamiast i++ napisałeś dwukrotnie "i" (czyli ii++)
0 głosów
odpowiedź 12 listopada 2017 przez obl Maniak (51,280 p.)

Jeżeli program ci nic nie wyświetla w konsoli to znaczy, że pętla cały czas się wykonuje (zakładam, że twoje zmienne n i m są typu liczbowego). W związku z tym może wstaw do pętli wyświetlanie wartości n i m żebyś widział ich wartości w każdym jej przejściu i sprawdzić jakie wyniki wychodzą.

komentarz 12 listopada 2017 przez Gharte Nowicjusz (120 p.)
Powiem tak: niezły matrix tam się dzieje xD. A i faktycznie, pętla cały czas się wykonuje.
komentarz 12 listopada 2017 przez obl Maniak (51,280 p.)
Znaczy się, że chyba jednak funkcja odwroc nie działa jak należy.
komentarz 12 listopada 2017 przez Gharte Nowicjusz (120 p.)
odwroc(int n)
{
    int reszta;
    while(n != 0)
    {
        reszta = n%10;
        m = m*10 + reszta;
        n /= 10;
    }
    return m;
}

to jest ta funkcja

komentarz 12 listopada 2017 przez Gharte Nowicjusz (120 p.)
czy może być to spowodowane tym, że n i m są dostępne globalnie?
1
komentarz 12 listopada 2017 przez obl Maniak (51,280 p.)
Może tak być raczej powinieneś z lokalnie utworzonych zmiennych korzystać.
komentarz 12 listopada 2017 przez Gharte Nowicjusz (120 p.)
Dzięki! Poprzenosiłem zmienne i działa :D

Podobne pytania

0 głosów
1 odpowiedź 563 wizyt
pytanie zadane 27 maja 2018 w SPOJ przez Kamil Paradowski Użytkownik (620 p.)
0 głosów
2 odpowiedzi 268 wizyt
pytanie zadane 3 października 2016 w C# przez matilogias Obywatel (1,550 p.)
0 głosów
1 odpowiedź 1,160 wizyt
pytanie zadane 8 kwietnia 2018 w SPOJ przez Maciej3206 Użytkownik (570 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...