Advertisement
wilk_maciej

lista z zad z ćw

Jan 9th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. #include<stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define MAX 9999
  5.  
  6. typedef struct{
  7.   char *imie_aut;
  8.   char *nazwisko_aut;
  9.   char *tytul;    
  10.   double nr_kat;
  11.   double cena;
  12. }ksiazka;
  13.  
  14.  
  15. typedef struct tag_list_element{
  16.   struct tag_list_element *next;
  17.   ksiazka data;
  18. }element_listy;
  19.  
  20. typedef struct tag_list{
  21.   element_listy *head;
  22.   int size;
  23. }List;
  24.  
  25. char* f_buforowa (void){    //dla charów
  26.   char bufor[MAX];
  27.   fgets (bufor, MAX, stdin);
  28.   char *tmp;
  29.   int wymiar;
  30.   wymiar=strlen(bufor)+1;
  31.   tmp=malloc (wymiar * sizeof(char));
  32.   if (!tmp)
  33.     {
  34.         perror("malloc");
  35.         exit (2);
  36.     }
  37.   for (int i=0;i<wymiar;i++){
  38.     tmp[i]=bufor[i];
  39.   }
  40.   return tmp;
  41. }
  42.  
  43. double f_buforowa_double (void){    //dla double
  44.   double bufor;
  45.   scanf ("%lf",&bufor);
  46.   return bufor;
  47. }
  48.  
  49.  
  50.  
  51. void uzupelnienie_struktury(ksiazka *data){
  52.   printf("Podaj imię autora: ");
  53.   data->imie_aut=f_buforowa();
  54.   printf("Podaj nazwisko autora: ");
  55.   data->nazwisko_aut=f_buforowa();
  56.   printf("Podaj tytuł: ");
  57.   data->tytul=f_buforowa();
  58.   printf("Podaj nr katalogowy: ");
  59.   data->nr_kat=f_buforowa_double();
  60.   printf("Podaj cenę: ");
  61.   data->cena=f_buforowa_double();
  62.   char c = getchar();
  63. }
  64.  
  65. void init (List*list){
  66.   list->head=0;
  67.   list->size=0;
  68. }
  69.  
  70. void push_front(List*list, ksiazka data){
  71.   element_listy *element = (element_listy*)malloc(sizeof(element_listy));
  72.   element->next=list->head;
  73.   element->data=data;
  74.   list->head=element;
  75.   list->size++;
  76. }
  77.  
  78. void dumpList (const List *list){
  79.   element_listy *i;
  80.   for (i=list->head; i!=0; i=i->next){
  81.     printf ("Imię autora: %sNazwisko autora: %sCena: %sNr_katalogowy: %lf\nCena: %lf \n", i->data.imie_aut, i->data.nazwisko_aut, i->data.tytul, i->data.nr_kat, i->data.cena);
  82.   }
  83.   printf("\n");
  84. }
  85.  
  86. int main(int argc, char *argv[])
  87. {
  88.   int i;
  89.   ksiazka data, data2, data3;
  90.   List list;
  91.   init(&list);
  92.   uzupelnienie_struktury(&data);
  93.   push_front(&list, data);
  94.   uzupelnienie_struktury(&data2);
  95.   push_front(&list, data2);
  96.   uzupelnienie_struktury(&data3);
  97.   push_front(&list, data3);
  98.   dumpList(&list);
  99.  
  100.   return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement