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

Să se scrie o funcție C++ care determină suma elementelor impare dintr-o lista simplu înlănțuită care sunt situate între două elemente pare.

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

struct nod

{

   int info;

   nod* urm;

};

int sumaImpare(nod *p)

{

   if (p==NULL || p->urm==NULL || p->urm->urm==NULL) return 0;

   else

   {

       int s=0;

       nod *q=p, *r=p->urm, *t=r->urm;

       if ((q->info)%2==0 && (t->info)%2==0 && (r->info)%2) s+=r->info;

       while (t->urm != NULL)

       {

           q=q->urm; r=r->urm; t=t->urm;

           if ((q->info)%2==0 && (t->info)%2==0 && (r->info)%2) s+=r->info;

       }

       return s;

   }

}

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;

   }

}

void afisare(nod *Cap)

{

   nod *p=Cap;

   while (p != NULL)

   {

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

       p = p->urm;

   }

   cout << "\n";

}

int main()

{

   nod *Cap=NULL;

   creareLista(Cap);

   afisare(Cap);

   cout << "Suma imparelor intre pare = " << sumaImpare(Cap);

}

Explicație:

am plasat tot codul, nu numai functia solicitată sumaImpare.  Dacă ea trebuie să se numească altfel, o redenumeşti...

Alte întrebări interesante