Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- /* Funkcja q sort i cmp testowania i pracowania nad nia*/
- typedef struct OSOBA
- {
- char imie[20];
- char nazwisko[20];
- int wiek;
- double zarobki;
- }OSOBA;
- int cmp_inwz(const void *a, const void *b)
- {
- OSOBA osoba_1 = *(OSOBA *)a;
- OSOBA osoba_2 = *(OSOBA *)b;
- /*linijeczka testowa*********/
- printf("\nTEST ODCZYTU Z ADRESU: %s %s",osoba_1.imie, osoba_2.imie);
- /***************************/
- if(strcoll(osoba_1.imie, osoba_2.imie)>0)
- { printf( " 1\n");
- return 1;}
- else if(strcoll(osoba_1.imie, osoba_2.imie)<0)
- {printf( " -1\n");return -1;}
- else
- { printf( " 1-w else\n");return 1;
- /* SKONCZYC przypadki wyjatkowe: imie=imie itp*/
- }
- }
- int main()
- {
- system("clear");
- OSOBA osoba_1={"Adam", "Rowadzki", 19, 2500.0},
- osoba_2={"Kasiek", "Wawrzynski", 25, 4000.0},
- osoba_3={"Tomasz", "Orchowski", 20, 0.0},
- osoba_4={"Kinga", "Kawucha", 19, 1250.0},
- osoba_5={"Stefan", "Banach", 75, 9999.99},
- osoba_6={"Bartek", "Maly", 30, 1250.00},
- osoba_7={"Cezary", "Pazura", 40, 40000};
- OSOBA lista_osob[]={osoba_1,osoba_2,osoba_3,osoba_4,osoba_5,osoba_6,osoba_7};
- size_t size_lista_osob=sizeof(lista_osob)/sizeof(OSOBA);
- /* testowe wyswietlenie bazy*/
- printf("\n*******przed ingerencja w porzadek tablicy*******\n");
- int i=0;
- for(;i<size_lista_osob;i++)
- {
- printf("\n%s %s %d %lf\n",lista_osob[i].imie, lista_osob[i].nazwisko, lista_osob[i].wiek, lista_osob[i].zarobki);
- }
- /* koniec testowego wyswietlanai bazy*/
- printf("\n\n*******testowanie cmp w trakcie sortowania*********\n\n");
- qsort(lista_osob,size_lista_osob,sizeof(OSOBA),cmp_inwz);
- /*testowanie "posortowanej" tablicy struktur */
- printf("\n*******PO ingerencja w porzadek tablicy*******\n");
- i=0;
- for(;i<size_lista_osob;i++)
- {
- printf("\n%s %s %d %lf\n",lista_osob[i].imie, lista_osob[i].nazwisko, lista_osob[i].wiek, lista_osob[i].zarobki);
- }
- printf("\n\n");
- }
- /*
- ------------------------------------------------------------------------------------------------------------------------
- !!! udalo sie!!!
- sposob wyluskiwania danych z adresu do struktury przy uzyciu rzutowania adresu na zmienna tego typu co adres struktury
- wejsciowej
- int cmp_inwz(const void *a, const void *b)
- {
- OSOBA osoba_1 = *(OSOBA *)a;
- OSOBA osoba_2 = *(OSOBA *)b;
- printf("%d",osoba_1.wiek);
- }
- int cmp_inwz(const void *a, const void *b)
- {
- OSOBA *osoba_1 = (OSOBA *)a;
- OSOBA *osoba_2 = (OSOBA *)b;
- printf("%d",osoba_1->wiek);
- }
- ------------------------------------------------------------------------------------------------------------------------
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement