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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!