Pp9

niewypal

Pp9
Dec 8th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.99 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct lista_l
  5. {
  6.     int l;
  7.     struct lista_l *n;
  8. } Element;
  9.  
  10. typedef Element *lista;
  11.  
  12. int czy_dalej();
  13. lista tworz();
  14. void czyt_l(lista pocz);
  15. lista nowa_przed(lista pocz);
  16.  
  17. void kasuj(lista pocz);
  18.  
  19.  
  20. int main()
  21. {
  22.     lista pocz;
  23.     pocz=tworz();
  24.     czyt_l(pocz);
  25.     lista dwa=nowa_przed(pocz);
  26.     czyt_l(dwa);
  27.  
  28.     kasuj(pocz);
  29.     kasuj(dwa);
  30.     return 0;
  31. }
  32.  
  33. int czy_dalej()
  34. {
  35.     char c;
  36.     printf("Czy chcesz kontynuowac(t/n)? ");
  37.     scanf(" %c", &c);
  38.     if (c=='t'|| c=='T') return 1;
  39.     else return 0;
  40. }
  41.  
  42. lista tworz()
  43. {
  44.     lista pocz;
  45.     int a;
  46.  
  47.     if(czy_dalej())
  48.     {
  49.         printf("Podaj liczbe: ");
  50.         scanf("%d", &a);
  51.  
  52.         pocz= malloc(sizeof(Element));
  53.         pocz->l=a;
  54.         pocz->n= tworz();
  55.         return pocz;
  56.     }
  57.     else return NULL;
  58. }
  59.  
  60. void czyt_l(lista pocz)
  61. {
  62.     int i;
  63.     lista c;
  64.     c=pocz;
  65.     printf("\n");
  66.     if(c==NULL) printf("\nLista pusta!");
  67.     for(i=0; c!=NULL; i++,c=c->n) printf("%d liczba w liscie: %d\n",i+1, c->l);
  68. }
  69.  
  70. lista nowa_przed(lista pocz)
  71. {
  72.     int a, b, c;
  73.     lista nowa, pom;
  74.     if(pocz==NULL)
  75.     {
  76.         printf("\nLista przychodzaca pusta!");
  77.         nowa=NULL;
  78.         return nowa;
  79.     }
  80.     printf("\nPodaj od ilu do ilu chcesz miec liczby(z tymi liczbami): ");
  81.     scanf("%d %d", &a, &b);
  82.     if(a>b)
  83.     {
  84.         printf("\nZbior pusty!");
  85.         nowa=NULL;
  86.         return nowa;
  87.     }
  88.     pom=malloc(sizeof(Element));
  89.     nowa=pom;
  90.     while(pocz!=NULL)
  91.     {
  92.         c=pocz->l;
  93.         if((c>=a)&&(c<=b))
  94.         {
  95.  
  96.             pom->l=c;
  97.             pom->n=malloc(sizeof(Element));
  98.             pom=pom->n;
  99.  
  100.         }
  101.         if(pocz->n==NULL)
  102.         {
  103.             pom=NULL;
  104.             return nowa;
  105.         }
  106.         pocz=pocz->n;
  107.     }
  108.     pom=NULL;
  109.     return nowa;
  110. }
  111.  
  112. void kasuj(lista pocz)
  113. {
  114.     if (pocz != NULL)
  115.     {
  116.         kasuj(pocz -> n);
  117.         free(pocz);
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment