Orar semigroup #2

Orar semigroup #2

5/9

Se citesc nr dintr-un fisier. Sa se creeze doua stive, una cu nr pare, alta cu nr impare. Sa se afiseze stivele. Sa se afiseze nr de elemente din fiecare stiva. Sa se adauge stiva elementelor pare la sfarsitul stivei celor impare.

#include<iostream>
#include<fstream>
using namespace std;
struct nod{
    int info;
    nod *urm;};
  
void afisare(nod* vf)
{if(vf==NULL)
    cout<<"Stiva goala";
while(vf!=NULL){
    cout<<vf->info<<" ";
    vf=vf->urm;}
}

int nr_el(nod* vf)
{int i=0;
while(vf!=NULL)
{i++;
vf=vf->urm;}
return i;
}

void concat(nod* vf1, nod* vf2)
{nod*p=vf1;
    while(p->urm != NULL)
        p=p->urm;
    p->urm=vf2;
}

void adaug(int x, nod* &vf)
{nod* p;
p=new nod;
p->info=x;
p->urm=vf;
vf=p;}

int main()
{nod *par=NULL,*impar=NULL;
ifstream f("date");
int x;
while(f>>x)
    if(x%2==0)
        adaug(x,par);
    else adaug(x,impar);
  
afisare(par);
cout<<endl<<nr_el(par)<<" elemente";
cout<<endl<<endl;
afisare(impar);
cout<<endl<<nr_el(impar)<<" elemente";
cout<<endl<<endl;
concat(impar,par);
afisare(impar);
}
2 copii dau cu zarul. Aruncarile fiecaruia se memoreaza in cate o stiva. Fiecare da cu zarul pana arunca 6. Cel care are mai multe puncte castiga. Afisati:
a) stiva fiecaruia

b) numarul de aruncari ale fiecaruia

c) castigatorul si punctele lui

#include<iostream>
#include<fstream>
using namespace std;
struct nod{
    int info;
    nod *urm;};
   
void afisare(nod* vf)
{if(vf==NULL)
    cout<<"Stiva goala";
while(vf!=NULL){
    cout<<vf->info<<" ";
    vf=vf->urm;}
}

int suma(nod* vf)
{int i=0;
while(vf!=NULL)
{i+=vf->info;
vf=vf->urm;}
return i;
}

void adaug(int x, nod* &vf)
{nod* p;
p=new nod;
p->info=x;
p->urm=vf;
vf=p;}

int main()
{nod *vf1=NULL,*vf2=NULL;
ifstream f("date");
int x;
f>>x;
while(x!=6)
{    adaug(x,vf1);
f>>x;}
f>>x;
while(x!=6)
{adaug(x,vf2);
f>>x;}
   
afisare(vf1);
cout<<endl<<suma(vf1)<<" puncte";
cout<<endl<<endl;
afisare(vf2);
cout<<endl<<suma(vf2)<<" puncte";
cout<<endl<<endl;
if(suma(vf1)>suma(vf2))
    cout<<"Copilul 1 cu "<<suma(vf1);
else if(suma(vf2)>suma(vf1))
    cout<<"Copilul 2 cu "<<suma(vf2);
else cout<<"=";
}

marți, 8 mai 2012 by DlMuresan
Categories: | Leave a comment

Leave a Reply