Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.33 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. typedef struct Osoba
  5. {
  6.  
  7.        char imie[100];
  8.        char nazwisko[100];
  9.        int wiek;
  10.        struct Osoba* next;
  11.               } Osoba ;
  12.  
  13. int dlugosc_listy(Osoba* lista) // zlicza dlugosc listy
  14. {
  15.     int d = 0;
  16.     Osoba* wsk = lista;
  17.     while(wsk != NULL)
  18.     {
  19.               d++;
  20.               wsk = wsk->next;
  21.               }
  22.     return d;
  23.     }
  24.  
  25. void dodaj(Osoba** lista, Osoba* nowa) // dodaje nowy wezel do listy
  26. {
  27.      nowa->next=NULL;
  28.  
  29.      if((*lista)==NULL)
  30.      {
  31.       *lista = nowa;
  32.                      }
  33.      else
  34.      {
  35.          Osoba* wsk = *lista;
  36.          while(wsk->next != NULL)
  37.          {
  38.          wsk = wsk->next;
  39.  
  40.          }
  41.          wsk->next = nowa;
  42.  
  43.          }
  44.      }
  45.              
  46. void dodajOsobe(Osoba** lista) // dodaje osobe do listy
  47. {
  48.      Osoba* nowa = (Osoba*)malloc(sizeof(Osoba)); //malloc przydziela pamiec operacyjna dla elementu listy
  49.      printf("Podaj imie: ");
  50.      scanf("%s", nowa->imie);
  51.  
  52.      printf("Podaj nazwisko: ");
  53.      scanf("%s", nowa->nazwisko);
  54.  
  55.      printf("Podaj wiek: " );
  56.      scanf("%d", &(nowa->wiek));
  57.  
  58.         dodaj(lista, nowa);  
  59. }
  60.  
  61. void wypisz_liste(Osoba* lista) //Wypisuje cala liste
  62. {
  63.  
  64.      Osoba* wsk = lista;
  65.  
  66.      if(lista == NULL)
  67.      printf("PUSTA LISTA");
  68.      else
  69.      printf("Lista posiada %d elementow: \n", dlugosc_listy(lista) );
  70.      int i = 1;
  71.      while( wsk != NULL)
  72.      {
  73.             printf("%d %s %s %d \n", i, wsk->imie, wsk->nazwisko, wsk->wiek);
  74.             wsk=wsk->next;
  75.             i++;
  76.      }
  77. }
  78.  
  79. int main()
  80. {
  81.     Osoba* lista = NULL;
  82.  
  83.               int opcja;
  84.  
  85.  while(opcja != 0)
  86.            {
  87. printf("\n\n MENU PROGRAMU");
  88. printf("\n 1 Wpisz dane osoby do bazy");
  89. printf("\n 2 Wyswietl cala liste");
  90. printf("\n 0 Wyjscie z programu\n");
  91.  
  92.            scanf("%d", &opcja);
  93.  
  94.            switch(opcja)
  95.            {            
  96.                          case 1:
  97.                               printf("DODAWANIE OSOBY\n");
  98.                               dodajOsobe(&lista);
  99.                                 break;
  100.                          case 2:
  101.                               printf("WYSWIETL WSZYSTKIE OSOBY\n");
  102.                               wypisz_liste(lista);
  103.                               break;
  104.                          }
  105.           }
  106. return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement