Problemă listare cu ordonarea elementelor și afișarea de informații.
#include <iostream>
#include <string.h>
using namespace std;
struct Nod
{int v,kg;
char nume[10],prenume[10], clasa[5];
Nod*next;
};
Nod *prim, *a,*c,*ultim;
void creare_adaugare()
{ if(prim==NULL)
{prim=new Nod;
cout<<"Clasa elevului este ";
cin>>prim->clasa;
cout<<"Numele elevului este :";
cin>>prim->nume;
cout<<"Prenumele elevului este :";
cin>>prim->prenume;
cout<<"Greutatea elevului este de :";
cin>>prim->kg;
cout<<"Varsta in ani ";
cin>>prim->v;
prim->next=0;
ultim=prim;
}
else
{Nod*c;
c=new Nod;
cout<<"Clasa elevului este ";
cin>>prim->clasa;
cout<<"Numele elevului este :";
cin>>prim->nume;
cout<<"Prenumele elevului este :";
cin>>prim->prenume;
cout<<"Greutatea elevului este de :" ;
cin>>prim->kg;
cout<<"Varsta in ani ";
cin>>prim->v;
ultim->next=c;
ultim=c;
ultim->next=0;
}
}
void ordonare()
{Nod *c;
int ord,aux;
do
{c=prim;
ord=1;
while(c->next)
{if(c->v <c->next->v)
{aux=c->v;
c->v=c->next->v;
c->next->v=aux;
ord=0;
}
c=c->next;}
}
while(ord==0);
}
void listare()
{
c=prim;
while(c!=0)
{cout<<c->clasa<<" ";
cout<<c->nume<<" ";
cout<<c->prenume<<" ";
cout<<c->kg<<" ";
cout<<c->v<<" ";
c=c->next;
}
cout<<endl;
}
int main()
{ int n , i ;
cout<<"cati elevi are scoala ";cin>>n;
cout<<" Elevii scolii sunt :"<<endl;
for(i=1;i<=n;i++)
creare_adaugare();
listare();
cout<<"Elevii ordonati dupa varsta sunt:";
ordonare();
listare();
return 0;
}
Niciun comentariu:
Trimiteți un comentariu