Advertisement
bloowper2

Rozwiazane

Feb 22nd, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.88 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5.  
  6. /* Funkcja q sort i cmp testowania i pracowania nad nia*/
  7. typedef struct OSOBA
  8. {
  9.     char imie[20];
  10.     char nazwisko[20];
  11.     int wiek;
  12.     double zarobki;
  13. }OSOBA;
  14.  
  15.  
  16.                             int cmp_inwz(const void *a, const void *b)
  17.                             {
  18.                                 OSOBA osoba_1 = *(OSOBA *)a;
  19.                                 OSOBA osoba_2 = *(OSOBA *)b;
  20.                                 /*linijeczka testowa*********/
  21.                                 printf("\nTEST ODCZYTU Z ADRESU: %s %s",osoba_1.imie, osoba_2.imie);
  22.                                 /***************************/
  23.                                 if(strcoll(osoba_1.imie, osoba_2.imie)>0)                          
  24.                                     {   printf( "   1\n");                                         
  25.                                         return 1;}
  26.                                 else if(strcoll(osoba_1.imie, osoba_2.imie)<0)
  27.                                     {printf( "  -1\n");return -1;}
  28.                                         else
  29.                                         {       printf( "   1-w else\n");return 1;
  30.                                                 /* SKONCZYC przypadki wyjatkowe: imie=imie itp*/
  31.  
  32.                                         }
  33.                             }
  34.  
  35.  
  36. int main()
  37. {
  38.     system("clear");
  39.     OSOBA   osoba_1={"Adam", "Rowadzki", 19, 2500.0},
  40.             osoba_2={"Kasiek", "Wawrzynski", 25, 4000.0},
  41.             osoba_3={"Tomasz", "Orchowski", 20, 0.0},
  42.             osoba_4={"Kinga", "Kawucha", 19, 1250.0},
  43.             osoba_5={"Stefan", "Banach", 75, 9999.99},
  44.             osoba_6={"Bartek", "Maly", 30, 1250.00},
  45.             osoba_7={"Cezary", "Pazura", 40, 40000};
  46.  
  47.     OSOBA lista_osob[]={osoba_1,osoba_2,osoba_3,osoba_4,osoba_5,osoba_6,osoba_7};
  48.  
  49.     size_t size_lista_osob=sizeof(lista_osob)/sizeof(OSOBA);
  50.  
  51.  
  52.     /* testowe wyswietlenie bazy*/
  53.     printf("\n*******przed ingerencja w porzadek tablicy*******\n");
  54.     int i=0;
  55.     for(;i<size_lista_osob;i++)
  56.     {
  57.         printf("\n%s %s %d %lf\n",lista_osob[i].imie, lista_osob[i].nazwisko, lista_osob[i].wiek, lista_osob[i].zarobki);
  58.     }  
  59.     /* koniec testowego wyswietlanai bazy*/
  60.  
  61.  
  62.     printf("\n\n*******testowanie cmp w trakcie sortowania*********\n\n");
  63.     qsort(lista_osob,size_lista_osob,sizeof(OSOBA),cmp_inwz);
  64.  
  65.  
  66.  
  67.     /*testowanie "posortowanej" tablicy struktur */
  68.     printf("\n*******PO ingerencja w porzadek tablicy*******\n");
  69.     i=0;
  70.     for(;i<size_lista_osob;i++)
  71.     {
  72.         printf("\n%s %s %d %lf\n",lista_osob[i].imie, lista_osob[i].nazwisko, lista_osob[i].wiek, lista_osob[i].zarobki);
  73.     }
  74.     printf("\n\n");
  75.  
  76. }
  77.  
  78. /*
  79.  
  80.  
  81. ------------------------------------------------------------------------------------------------------------------------
  82. !!! udalo sie!!!
  83. sposob wyluskiwania danych z adresu do struktury przy uzyciu rzutowania adresu na zmienna tego typu co adres struktury
  84. wejsciowej
  85.  
  86.                             int cmp_inwz(const void *a, const void *b)
  87.                             {
  88.                                 OSOBA osoba_1 = *(OSOBA *)a;
  89.                                 OSOBA osoba_2 = *(OSOBA *)b;
  90.  
  91.                                 printf("%d",osoba_1.wiek);
  92.                             }
  93.  
  94.  
  95.                             int cmp_inwz(const void *a, const void *b)
  96.                             {
  97.                                 OSOBA *osoba_1 = (OSOBA *)a;
  98.                                 OSOBA *osoba_2 = (OSOBA *)b;
  99.  
  100.                                 printf("%d",osoba_1->wiek);
  101.                             }
  102.  
  103. ------------------------------------------------------------------------------------------------------------------------
  104.  
  105.  
  106. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement