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

Pętla - modulo

Object Storage Arubacloud
0 głosów
810 wizyt
pytanie zadane 16 marca 2020 w C i C++ przez Oxhoft Nowicjusz (150 p.)

Cześć,

Potrzebuje z pętli while wyciągnąć  wartość przypisaną do zmiennej modulo, taki żeby wykorzystać ja poza pętlą, do porównania z c.

Nie do końca to sie udaje, gdyż do zmiennej modulo w petli, przypisywany jest wynik z dzielenia do momentu kiedy pętla się nie zakończy, a poza pętlą pokazuje tylko ostatnią wartość z dzielenia.

#include <iostream>

using namespace std;

int liczba,modulo,c;


int main()
{
    cout<<"Wpisz wartosc i sprawdz czy jest palindromem: ";
    cin>>liczba;
    
    c=liczba;
    
    while (liczba)
    {
        
    modulo=liczba%10;
    
    liczba=liczba/10;
    
    cout<<modulo;
    
    }
    
    cout<<modulo; // pokazuje tylko ostatnia wartosc z dzielenia modulo
    
    return 0;
}

 

komentarz 16 marca 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
jeśli chcesz wyciągnąć co iteracje pętli tą zmienną aby porównać ją z inną to nie lepiej po prostu porównywać zmienną c z modulo w pętli?
komentarz 16 marca 2020 przez Oxhoft Nowicjusz (150 p.)
Problem polega na tym, że chcę porównać wynik po wszystkich iteracjach pętli ze zmienną c.

Pytanie czy jest to możliwe do zrobienia, i czy nie ma tu błędu w samym założeniu.
komentarz 16 marca 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
while (liczba)
    {
         
    modulo=liczba%10;

    if(modulo == c) {
        cout<<"modulo == c"
     }
     
    liczba=liczba/10;
     
    cout<<modulo;
     
    }

Możesz spokojnie zrobić coś takiego

1 odpowiedź

+1 głos
odpowiedź 16 marca 2020 przez profesorek96 Szeryf (91,420 p.)
wybrane 16 marca 2020 przez Oxhoft
 
Najlepsza


Rozumiem że twoim zadaniem było wykonanie programu który pobierał liczbę i sprawdzał czy jest ona palindromem. Jeśli mamy do czynienia z liczbami to takie sprawdzenie można wykonać tak:

#include <iostream>
using namespace std;

int liczba,modulo,c;

int main()
{
    cout<<"Wpisz wartosc i sprawdz czy jest palindromem: ";
    cin>>liczba;
    c=liczba;
    int odwrotna=0;
    while (liczba>0)
    {
    	modulo=liczba%10;
    	odwrotna+=modulo;
    	odwrotna*=10;
    	liczba=liczba/10;
    }
    odwrotna/=10;
    if(c==odwrotna)
    {
    	cout<<"Jest palindromem";
    }
    else
    {
    	cout<<"nie jest palindromem";
    }
    return 0;
}

Jeżeli chciałbyś sprawdzać czy podany napis jest palindromem, polecam zastosować następujący algorytm.

Wczytać napis jako string a następnie porównać napis z jego odwrotnością. Jak odwróci string w c++ opisuje dobrze ten artykuł:

https://profesorek96.blogspot.com/2018/04/odwracanie-ancucha-znakow-string-c.html

Dla napisów kod wyglądał by tak:

#include <iostream>
using namespace std;
string reverseString(string str)
{
    string Rstr;
    int len=str.length();
    for(int i=len-1;i>=0;i--)Rstr+=str[i];
    return Rstr;
}


int main()
{
	string liczba;
	cin>>liczba;
    if(liczba==reverseString(liczba))
    {
    	cout<<"Jest palindromem";
    }
    else
    {
    	cout<<"nie jest palindromem";
    }
    return 0;
}

 

komentarz 16 marca 2020 przez Oxhoft Nowicjusz (150 p.)
Właśnie o to chodziło, dokładnie o pobieranie liczby i przy pomocy modulo sprawdzenie palindromu.

Niestety, za bardzo się zafiksowałem na konkretny model rozwiązania i spaliłem przy tym za dużo czasu, krążąc przy tym na różne sposoby.

Dzięki bardzo za podpowiedź, jak konstrukcyjnie do tego podejść. Przeanalizuje to jeszcze na spokojnie i postaram się wryć logikę, może na przyszłość zaprocentuje.

Podobne pytania

+1 głos
2 odpowiedzi 165 wizyt
0 głosów
2 odpowiedzi 546 wizyt
pytanie zadane 1 listopada 2018 w Java przez Loki12 Nowicjusz (160 p.)
0 głosów
4 odpowiedzi 666 wizyt

92,568 zapytań

141,420 odpowiedzi

319,624 komentarzy

61,956 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!

...