Să se creeze o coadă ce conține datele despre elevii unei clase : numele, prenumele și anul nașterii. Să se afișeze coada la ecran precum și vărsta fiecărui elev.
Programul să fie creat în limbajul C cu ajutorul la Prelucrarea tipurilor de date stivă, coadă.
Dau Coroana!!!
Răspunsuri la întrebare
Răspuns:
#include <stdio.h>
#include <stdlib.h>
#define MAX_ELEVI 100
typedef struct
{
char nume[30];
char prenume[30];
int an_nastere;
} Elev;
typedef struct
{
Elev eleve[MAX_ELEVI];
int prim;
int ultim;
} Coada;
void init_coada(Coada *q)
{
q->prim = 0;
q->ultim = -1;
}
void push_coada(Coada *q, Elev e)
{
if (q->ultim == MAX_ELEVI - 1)
{
printf("Coada este plina!\n");
return;
}
q->ultim++;
q->eleve[q->ultim] = e;
}
Elev pop_coada(Coada *q)
{
if (q->prim > q->ultim)
{
printf("Coada este goala!\n");
exit(1);
}
Elev e = q->eleve[q->prim];
q->prim++;
return e;
}
int main()
{
Coada q;
init_coada(&q);
// Adaugam cateva elevi in coada
Elev e1 = {"Popescu", "Ion", 2000};
Elev e2 = {"Ionescu", "Maria", 2001};
Elev e3 = {"Georgescu", "Alexandra", 2002};
push_coada(&q, e1);
push_coada(&q, e2);
push_coada(&q, e3);
// Afisam elevii din coada
printf("Elevii din coada:\n");
while (q.prim <= q.ultim)
{
Elev e = pop_coada(&q);
printf("%s %s (varsta: %d)\n", e.nume, e.prenume, 2022 - e.an_nastere);
}
return 0;
}