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ă informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.