Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Zad11(){
- struct autko auto1[3];
- auto1[0].cena = 5000;
- auto1[0].mobile.marka = "Volkswagen";
- auto1[0].mobile.rocznik = 2005;
- auto1[0].mobile.przebieg = 100;
- auto1[1].cena = 4000;
- auto1[1].mobile.marka = "Volkswagen";
- auto1[1].mobile.rocznik = 2005;
- auto1[1].mobile.przebieg = 100;
- auto1[2].cena = 5000;
- auto1[2].mobile.marka = "Audi";
- auto1[2].mobile.rocznik = 2008;
- auto1[2].mobile.przebieg = 100;
- FILE *fptr;
- fptr = fopen("auto.bin","wb");
- if(fptr == NULL){
- exit(1);
- }
- fwrite(&auto1,sizeof(auto1),1,fptr);
- fclose(fptr);
- FILE *plik;
- plik = fopen("auto.bin","rb");
- if(plik == NULL){
- exit(1);
- }
- fseek(plik,0,SEEK_END);
- int sizeOfStructs = ftell(plik)/sizeof(struct autko);
- rewind(plik);
- printf("%d",sizeOfStructs);
- struct autko *oferta = malloc(sizeOfStructs*sizeof(struct autko));
- fread(oferta,sizeof(struct autko),sizeOfStructs,plik);
- fclose(plik);
- printf("Po odczytaniu:\n");
- for(int i = 0; i < sizeOfStructs;i++){
- printf("%d\n",oferta[i].cena);
- printf("%s\n",oferta[i].mobile.marka);
- printf("%d\n",oferta[i].mobile.rocznik);
- printf("%d\n",oferta[i].mobile.przebieg);
- printf("\n");
- }
- qsort(oferta,sizeOfStructs,sizeof(struct autko),compare);
- printf("Po sortowaniu:\n");
- for(int i = 0; i < sizeOfStructs;i++){
- printf("%d\n",oferta[i].cena);
- printf("%s\n",oferta[i].mobile.marka);
- printf("%d\n",oferta[i].mobile.rocznik);
- printf("%d\n",oferta[i].mobile.przebieg);
- printf("\n");
- }
- return;
- }
- int compare(const void *a,const void *b){
- struct autko* s1 = (struct autko *)a;
- struct autko* s2 = (struct autko *)b;
- if(!strcmp((*s1).mobile.marka,(*s2).mobile.marka)){
- return strcmp((*s1).mobile.marka,(*s2).mobile.marka);
- } else if((*s1).mobile.rocznik != (*s2).mobile.rocznik){
- return (*s2).mobile.rocznik - (*s1).mobile.rocznik;
- } else if((*s1).cena != (*s2).cena){
- return (*s1).cena - (*s2).cena;
- } else {
- return (*s1).mobile.przebieg - (*s2).mobile.przebieg;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement