Rezolvare completă PbInfo #915 ElimPalindrom

Cerința

Se dă un tablou cu n elemente, numere naturale. Să se elimine din tablou toate elementele care sunt palindrom.

Se vor defini și apela următoarele subprograme:

  • citire, care citește de la tastatură valoarea lui n și cele n elemente ale tabloului
  • afisare, care afișează pe ecran elementele tabloului, separate prin exact un spațiu
  • palindrom, care verifică dacă un număr dat ca parametru este palindrom
  • eliminare, care elimină din tablou un element a cărui poziție este dată ca parametru.

În programele C/C++ nu se vor folosi variabile globale.

Date de intrare

Se citește de la tastatură numărul n, iar apoi cele n elemente ale tabloului.

Date de ieșire

Se vor afișa pe ecran elementele tabloului, separate prin exact un spațiu.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • elementele tabloului vor fi mai mici decât 1.000.000.000

Exemplu

Intrare

7
17 181 22 56 4 20 420 

Ieșire

17 56 20 420

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema ElimPalindrom:

#include <iostream>
#include <fstream>
using namespace std;

void citire(int a[], int &n);
void afisare(int a[], int n);
int palindrom(int x);
void eliminare(int a[], int & n ,int p);

int main()
{
    int n , v[1005];
    citire(v , n);
    for(int i = n - 1 ; i >= 0 ; i --)
        if(palindrom(v[i]))
            eliminare(v , n , i);
    afisare(v , n);
    return 0;
}

void citire(int a[] , int & n)
{
    cin >> n;
    for(int i = 0 ; i < n ; i ++)
        cin >> a[i];
}


void afisare(int a[], int n)
{
    for(int i = 0 ; i < n ; i ++)
        cout << a[i] << " ";
}

int palindrom(int x)
{
    int y = x , ogl = 0;
    while(y)
    {
        ogl = 10 * ogl + y % 10;
        y /= 10;
    }
    return ogl == x;
}

void eliminare(int a[], int & n ,int p)
{
    for(int i = p ; i < n - 1 ; i ++)
        a[i] = a[i + 1];
    n --;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #915 ElimPalindrom

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #915 ElimPalindrom de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!