Informatică, întrebare adresată de singei, 8 ani în urmă

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 de danielpetrupasc
0

Răspuns:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

#define MAX_NAME_LENGTH 100

struct node {

   char nume[MAX_NAME_LENGTH];

   char prenume[MAX_NAME_LENGTH];

   int anul_nasterii;

   struct node *next;

};

/* Functie pentru adaugarea unui element in coada */

void enqueue(struct node **front, struct node **rear, char nume[], char prenume[], int anul_nasterii)

{

   struct node *new_node = (struct node*) malloc(sizeof(struct node));

   strcpy(new_node->nume, nume);

   strcpy(new_node->prenume, prenume);

   new_node->anul_nasterii = anul_nasterii;

   new_node->next = NULL;

   if (*front == NULL && *rear == NULL)

   {

       *front = *rear = new_node;

       return;

   }

   (*rear)->next = new_node;

   *rear = new_node;

}

/* Functie pentru afisarea cozii */

void afiseazaCoada(struct node *front)

{

   time_t current_time;

   struct tm *local_time;

   /* Obtinem data si ora curenta */

   current_time = time(NULL);

   local_time = localtime(&current_time);

   printf("Coada elevilor:\n");

   while (front != NULL)

   {

       printf("Nume: %s, Prenume: %s, Anul nasterii: %d, Varsta: %d\n", front->nume, front->prenume, front->anul_nasterii, local_time->tm_year + 1900 - front->anul_nasterii);

       front = front->next;

   }

}

int main()

{

   struct node *front, *rear;

   front = rear = NULL;

   /* Adaugam elemente in coada */

   enqueue(&front, &rear, "Popescu", "Ion", 1995);

   enqueue(&front, &rear, "Ionescu", "Maria", 2000);

   enqueue(&front, &rear, "Vasilescu", "Alex", 2003);

   /* Afisam coada */

   afiseazaCoada(front);

   return 0;

}

Explicație:

Sper să ajute!

Alte întrebări interesante