Informatică, întrebare adresată de ionutbarosanu2, 8 ani în urmă

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

Răspunsuri la întrebare

Răspuns de andreidiaconescu18
2

Si data viitoare cand postezi pune si ce ai incercat tu pana atunci ca altfel nu inveti nimic. Informatica nu se invata din copiat coduri scrise de x si y.

#include <iostream>

using namespace std;

void citire(int *v, int *n)

{

   int nn;

   cin>>nn;

   for(int i=0; i<nn; i++)

   {

       cin>>v[i];

   }

   *n=nn;

}

void afisare(int *v, int n)

{

   for(int i=0; i<n; i++)

       cout<<v[i]<<" ";

}

bool palindrom(int x)

{

   int nr=x,aux=0;

   while(nr!=0)

   {

       aux=aux*10+nr%10;

       nr/=10;

   }

   return x == aux;

}

void eliminare(int poz, int *n, int *v)

{

   for(int i=poz; i<*n-1; i++)

       v[i]=v[i+1];

   *n=*n-1;

}

int main(){

   int n,v[1000];

   citire(v,&n);

   int i=0;

   while(i<n)

   {

       if(palindrom(v[i]))

           eliminare(i,&n,v);

       else

           i++;

   }

   afisare(v,n);

   return 0;

}

Alte întrebări interesante