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

Funkcja sprawdzająca palindrom

0 głosów
889 wizyt
pytanie zadane 29 stycznia 2020 w C i C++ przez Forven Nowicjusz (200 p.)

Napisz funkcję, która sprawdzi czy podana liczba jest palindromem czyli identycznie czytana jak od prawej do lewej. Napisz funkcję wywołaj
Przykład:

303 -->true

191919 --> true

752891 --> false

#include "pch.h"
#include <iostream>
#include <vector>
using namespace std;

bool palindrom(string x)
{
	int d = x.size();
	int left = 0;
	int right = d - 1;
	while (left < right)
	{
		if (x[left] != x[right])
		{
			return false;
			break;
		}
		else
		{
			left++;
			right--;
		}
	}
	return true;
}
int main()
{
	string x;
	cout << "Podaj liczbę =";
	cin >> x;
	if(palindrom(x)cout << "\nLiczba" <<x<< " jest palindromem\n" ;
	return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 29 stycznia 2020 przez Forven Nowicjusz (200 p.)
Czy mógłby mi ktoś łopatologicznie wytłumaczyć co i jak i jakoś je uprościć?
0 głosów
odpowiedź 29 stycznia 2020 przez kukulim Mądrala (6,440 p.)
#include "pch.h"
#include <iostream>
#include <vector>
using namespace std;        // uzywaj przestrzeni nazw standartowych
 
bool palindrom(string x)    // funkcja palindrom pobiera jeden argument x ktory jest stringiem
                            // i zwraca wartosc true - prawda , lub false - nieprawda
{
    int d = x.size();       // deklaracja zmiennej d jest to dlugosc napisu x ktory przekazalismy do 
                            // funkcji
    int left = 0;               // deklaracja zmianna left bedzie to poczatek naszego napisu
    int right = d - 1;          // deklaracja zmianna right bedzie to koniec napisu ale ze miejsca w 
                                // string numeruje sie od 0 trzeba odjac 1 zeby nie wyjsc poza 
                                // tablice
    while (left < right)        //petla dopuki lewo jest mniejsze od prawo to sie wykonuje        <-------------------
    {                               //                                                                               |
        if (x[left] != x[right])    // jezeli znak z lewej w tym przypadku 1 znak w napisie (bo left                 |
                                    // = 0) i ostni zank (bo right = d-1) sa różne to:                               |
        {                           //                                                                               |
            return false;           // funkcja zwraca falsz                                                          |
            break;                  // i przerywa działanie                                                          |
        }                           //                                                                               |
        else                        // w innym wypadku ( czyli jak sa takie same)                                    |
        {                           //                                                                               |
            left++;                 // zwiekszamy zmienna lewo o 1                                                   |
            right--;                // zmniejszamy zmienna prawo o 1                                                 |
        }                           //  ->               <-                                                          |
    }                               //    |             |                                                            |
                                    //  _ _ _ _ _ _ _ _ _ _                                                          |
                                    // i dalej wykonujemy petle while  -----------------------------------------------
    return true;                    // jesli znaki sa takie same zwracamy na koncu prawda
}
int main()                          // glowna funkcja main
{
    string x;                       // deklaracja zmiennej string o nazwie x
    cout << "Podaj liczbę =";       // piszemy na ekranie - "Podaj liczbę =""
    cin >> x;                       // pobieramy i zapisujemy w zmiennej x;
    if(palindrom(x))cout << "\nLiczba" <<x<< " jest palindromem\n" ;    // wysyłamy nasza pobrana z ekranu zmienna do funkcji palidrom
                                                                        // jesli funkcja zwroci true to if sie spelni i wykona 
    return 0;                                                           // couta i wypisze napis "liczba [tu nasza zmienna x pobrana z klawiatury]
                                                                        // jest palidromem :)
}

 

Podobne pytania

+1 głos
1 odpowiedź 656 wizyt
pytanie zadane 26 czerwca 2023 w C i C++ przez Szyszka Gaduła (3,510 p.)
0 głosów
1 odpowiedź 304 wizyt
pytanie zadane 25 grudnia 2022 w C i C++ przez polandonion Dyskutant (7,680 p.)
0 głosów
1 odpowiedź 435 wizyt
pytanie zadane 7 sierpnia 2022 w C i C++ przez Noizz00 Użytkownik (910 p.)

93,604 zapytań

142,528 odpowiedzi

322,995 komentarzy

63,090 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

Kursy INF.02 i INF.03
...