38 probleme pe site
Incepand cu : 15.02.2004 Accesari : 172247
[ Statistici detaliate ]
Luna aglomerata : noiembrie 2023 (4734)
Zi aglomerata : 11 noiembrie 2021 (2711)
Ora aglomerata : 15:00 - 15:59 in data de 16 august 2022 (2539)
|
|
|
|
| | | | Enunt :
Din fisierul lista.in se citeste un sir de nr. reale separate prin spatii cu care se construieste o lista
liniara dublu inlantuita in ordinea inversa citirii din fisier.Intre oricare 2 noduri consecutive care
contin valori pozitive sa se insereze media geometrica.Afisati in fisierul lista.out noua lista,valorile sa
fie reprezentate cu 3 zecimale separate prin spatii.
Pe ultima linie a fisierului, sa se afiseze nr. de noduri inserate. | | | | |
| | | | Rezolvare :
#include<fstream.h>
#include<iomanip.h>
#include<math.h>
struct nod
{
double info;
nod*as,*ad;
};
void creare(nod*&prim)
{
fstream f("listain.txt",ios::in);
double x;
nod*p;
prim=0;
while(f>>x)
{
p=new nod;
p->info=x;
p->ad=prim;
p->as=0;
prim=p;
}
f.close();
}
double medieg(double a, double b)
{
double c;
c=a*b;
c=sqrt(c);
return c;
}
void tipar (nod *prim)
{
nod*p=prim;
while (p) {cout<<setprecision(4)<<p->info<<" "; p=p->ad; }
cout<<endl;
}
void main()
{
nod* prim;
creare(prim);
int nrnod=0;
nod*p=prim, *t;
tipar(prim);
while(p)
{
if (p->ad!=0)
{
if ((p->info>=0) && (p->ad->info>=0))
{
t=new nod;
t->info=medieg(p->info, p->ad->info);
t->ad=p->ad;
t->as=p;
p->ad=t;
p->ad->as=t;
p=t;
nrnod++;
}
}
p=p->ad;
}
tipar(prim);
fstream g("listaout.txt",ios::out);
p=prim;
while (p)
{
g<<setprecision(4)<<p->info<<" ";
p=p->ad;
}
g<<endl<<nrnod;
g.close();
} | | | | |
| | | | Opinii diverse :
Nu exista nici o opinie in baza de date. | | | | |
| |
|