Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //setul 1 problema 1
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- //Se citesc datele despre elevii unei clase, respectiv numele şi data naşterii. Să se ordoneze elevii în ordinea crescătoare după data naşterii şi să se afişeze această situaţie
- typedef struct data
- {
- int zi, luna, an;
- } Data;
- typedef struct elev
- {
- char nume[20];
- Data datan;
- } Elev;
- typedef struct list{
- struct list* next;
- Elev elev;
- } List;
- List* add_list(List* head, Elev elev)
- {
- if(head == NULL) {
- head = (List*) malloc(sizeof(List));
- strcpy(head->elev.nume, elev.nume);
- head->elev.datan.zi = elev.datan.zi;
- head->elev.datan.luna = elev.datan.luna;
- head->elev.datan.an = elev.datan.an;
- head->next = NULL;
- return head;
- }
- List* aux = head;
- while(aux->next != NULL) {
- aux = aux->next;
- }
- List* new_element = (List*) malloc(sizeof(List));
- strcpy(new_element->elev.nume, elev.nume);
- new_element->elev.datan.zi = elev.datan.zi;
- new_element->elev.datan.luna = elev.datan.luna;
- new_element->elev.datan.an = elev.datan.an;
- new_element->next = NULL;
- aux->next = new_element;
- return head;
- }
- void print_elevi(List* head)
- {
- while(head != NULL) {
- printf("Nume: %s\n", head->elev.nume);
- head = head->next;
- }
- }
- List* delete_list(List* head, char nume[])
- {
- if(strcmp(head->elev.nume, nume) == 0) {
- return head->next;
- }
- List* aux = head;
- while(aux != NULL && strcmp((aux->next)->elev.nume, nume) != 0)
- {
- aux = aux->next;
- }
- if(aux == NULL || aux->next == NULL)
- return head;
- aux->next = (aux->next)->next;
- return head;
- }
- // void sort_elevi(Elev* e, int n)
- // {
- //
- // }
- int
- main ()
- {
- int n, i;
- Elev aux;
- printf ("Numarul de elevi:");
- scanf ("%d", &n);
- List* head = NULL;
- for (i = 0; i < n; i++)
- {
- scanf("%s %d %d %d", aux.nume, &aux.datan.an, &aux.datan.luna, &aux.datan.zi);
- head = add_list(head, aux);
- }
- //sort_elevi(v_elevi.elevi, v_elevi.current_dim);
- print_elevi(head);
- printf("A doua afisare\n");
- delete_list(head, (char*)"Alex");
- print_elevi(head);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement