Răspuns :
Răspuns:
#include <iostream>
using namespace std;
struct nod
{
int info;
nod* urm;
};
nod *p, *Cap=NULL;
int n, prod=1;
void afisare(nod *Cap)
{
nod *p=Cap;
while (p != NULL)
{
cout << p->info << " ";
p = p->urm;
}
cout << "\n";
}
void creareLista(nod *&Cap, int &prod)
{
int i,inf;
nod *p, *q;
Cap=NULL;
cout<<"Dati numarul de elemente al listei n = ";cin>>n;
cout<<"Dati prima informatie ";cin>>inf;
prod=prod*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;
prod=prod*inf;
p=new nod;
p->info=inf;
p->urm=NULL;
q->urm=p;
q=p;
}
}
void inserare(nod *prim, int prod)
{
nod *p=prim, *nou;
if (p->info>0)
{
nou=new nod;
nou->info=prod;
if (p->urm!=NULL)
{
nou->urm=p->urm;
p->urm=nou;
}
else p->urm=nou;
afisare(prim);
p=nou->urm;
}
else p=p->urm;
while (p!=NULL)
{
if (p->info>0)
{
nou=new nod;
nou->info=prod;
if (p->urm!=NULL)
{
nou->urm=p->urm;
p->urm=nou;
}
else p->urm=nou;
afisare(prim);
p=nou->urm;;
}
else p=p->urm;
}
}
int main()
{
creareLista(Cap,prod);
cout << "Lista initiala: \n";
afisare(Cap);
cout << "produsul elementelor listei = " << prod << "\n";
cout << "Rezultatele inserarii : \n";
inserare(Cap,prod);
}
Explicație:
am corectat codul... arunci lucra bine numai pentru pozitive... :))), acum lucrează şi pentru elemente negative în listă... am lăsat în cod şi afişarea produsului elementelor listei.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că resursele disponibile v-au fost de ajutor. Pentru întrebări sau asistență suplimentară, nu ezitați să ne contactați. Ne bucurăm să vă revedem în curând și vă invităm să ne salvați în lista de site-uri preferate!