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

Să se creeze o listă simplu înlănţuită cu numerele întregi preluate de la tastatura. Se cere să se adauge după fiecare număr din listă cifra de control a numărului respectiv. Să se afişeze conţinutul listei înainte şi după modificare, fiecare afişare pe câte un rând (cifra de control pentru 1468 este 1 (1+4+6+8=19; 1+9=10; 1+0=1) in C++


boiustef: când scrii numere întregi, cred te referi la naturale?
boiustef: De unde e Sarateanu? am o rudă cu acest nume...

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

using namespace std;

struct nod

{

   int info;

   nod* urm;

};

void afisare(nod *Cap)

{

   nod *p=Cap;

   while (p != NULL)

   {

       cout << p->info << " ";

       p = p->urm;

   }

   cout << "\n";

}

void creareLista(nod *&Cap)

{

   int i,inf,n;

   nod *p, *q;

   Cap=NULL;

   cout<<"Dati numarul de elemente al listei n = ";cin>>n;

   cout<<"Dati prima informatie ";cin>>inf;

   p=new nod;

   p->info=inf;

   p->urm=NULL;

   Cap=p; q=p;

   for(i=2;i<=n;i++)

   {

       cout<<"Dati informatia "<<i<<" = ";

       cin>>inf;

       p=new nod;

       p->info=inf;

       p->urm=NULL;

       q->urm=p;

       q=p;

   }

}

int cifControl(int num)

{

   int sCif;

   while (num>9)

   {

       sCif=0;

       while (num)

       {

           sCif+=num%10;

           num/=10;

       }

       num=sCif;

   }

   return num;

}

void inserare(nod *p)

{

   nod *q=p;

   while (q->urm!=NULL)

   {

       nod *nou=new nod;

       nou->info=cifControl(q->info);

       nou->urm=q->urm;

       q->urm=nou;

       q=nou->urm;

   }

   nod *nou=new nod;

   nou->info=cifControl(q->info);

   nou->urm=NULL;

   q->urm=nou;

}

int main()

{

   nod *Cap;

   creareLista(Cap);

   afisare(Cap);

   inserare(Cap);

   afisare(Cap);

}

Explicație:

Alte întrebări interesante