Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.37 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6.  
  7. typedef struct lista_okregow{
  8.     char figura;
  9.     int wsp_x, wsp_y, r;
  10.     struct lista_okregow *next;
  11. }lista_o;
  12.  
  13. typedef struct lista_prostokatow{
  14.     char figura;
  15.     int wsp_x, wsp_y, wsp2_x, wsp2_y;
  16.     struct lista_prostokatow *next;
  17. }lista_p;
  18.  
  19. void sortowanie (char* nazwa_pliku, lista_o** wierzcholek_o, lista_p** wierzcholek_p)
  20. {
  21.     lista_o *nowy1;
  22.     lista_p *nowy2;
  23.     FILE * plik;
  24.     char figura, wiersz[64];
  25.     int wsp_x, wsp_y, r, wsp2_x, wsp2_y;
  26.  
  27.     if((plik = fopen(nazwa_pliku,"r"))==NULL)
  28.     {
  29.         printf("plik nie zostal otwarty");
  30.         return NULL;
  31.     }
  32.  
  33.     while((fgets(wiersz, sizeof(wiersz), plik)))
  34.     {
  35.         figura = wiersz[0];
  36.         if(figura == 'o' || figura == 'O')
  37.         {
  38.             //printf("%c\n",figura );
  39.             nowy1 = malloc(sizeof(lista_o));
  40.             sscanf(wiersz, "%c %d %d %d", &figura, &wsp_x, &wsp_y, &r);
  41.             nowy1 -> figura = figura;
  42.             nowy1 -> wsp_x = wsp_x;
  43.             nowy1 -> wsp_y = wsp_y;
  44.             nowy1 -> r = r;
  45.             nowy1 -> next = *wierzcholek_o;
  46.             *wierzcholek_o = nowy1;
  47.         }
  48.         else if(figura == 'p' || figura == 'P')
  49.         {
  50.             //printf("%c\n",figura );
  51.             nowy2 = malloc(sizeof(lista_p));
  52.             sscanf(wiersz, "%c %d %d %d %d", &figura, &wsp_x, &wsp_y, &wsp2_x, &wsp2_y);
  53.             nowy2 -> figura = figura;
  54.             nowy2 -> wsp_x = wsp_x;
  55.             nowy2 -> wsp_y = wsp_y;
  56.             nowy2 -> wsp2_x = wsp2_x;
  57.             nowy2 -> wsp2_y = wsp2_y;
  58.             nowy2 -> next = *wierzcholek_p;
  59.             *wierzcholek_p = nowy2;
  60.         }
  61.     }
  62.     fclose(plik);
  63. }
  64.  
  65. int main()
  66. {
  67.  
  68.  
  69.     lista_o* wierzcholek_o = malloc(sizeof(lista_o)) , *pomoc_o;
  70.     lista_p* wierzcholek_p = malloc(sizeof(lista_p)), *pomoc_p;
  71.  
  72.     sortowanie("figury.txt", &wierzcholek_o, &wierzcholek_p);
  73.  
  74.     pomoc_o = wierzcholek_o;
  75.     pomoc_p = wierzcholek_p;
  76.     while(pomoc_o != NULL)
  77.     {
  78.         printf("%d \n", pomoc_o->figura );
  79.         printf("%d \n", pomoc_o->r );
  80.         printf("%d \n", pomoc_o->wsp_x );
  81.         printf("%d \n", pomoc_o->wsp_y );
  82.  
  83.         pomoc_o=pomoc_o->next;
  84.     }
  85.     while(pomoc_p != NULL)
  86.     {
  87.         printf("%d \n", pomoc_p->wsp_x );
  88.         pomoc_p=pomoc_p->next;
  89.     }
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement