Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define max 50
- struct obraz{
- char nazwa[max];
- int szerokosc;
- int jakosc;
- };
- void wypisywanie(struct obraz *pliki,int i)
- {
- int j;
- printf("Nazwa szerokosc jakosc\n");
- for(j=0;j<i;j++)
- {
- printf("%-10s %-10d %-10d\n",pliki[j].nazwa,pliki[j].szerokosc,pliki[j].jakosc);
- }
- }
- void wpisywanie(struct obraz *pliki,int *i)
- {
- char nazwa[50];
- if(*i<50)
- {
- printf("Podaj nazwe pliku\n");
- scanf("%s",&nazwa);
- strcpy(pliki[*i].nazwa,nazwa);
- printf("Podaj szerokosc pliku\n");
- scanf("%d",&pliki[*i].szerokosc);
- printf("Podaj jakosc pliku(wartosc od 0.0 do 1.0\n");
- scanf("%d",&pliki[*i].jakosc);
- (*i)++;
- }
- else
- printf("Nie mozna dodac wiecej\n");
- }
- void sortuj(struct obraz *posortowane,int pole,int kolejnosc,int ilosc)
- {
- struct obraz kopia;
- int i,a;
- switch (pole)
- {
- case 0:
- if(kolejnosc==1)
- {
- for(i=1; i<ilosc; i++)
- {
- int j = i - 1;
- kopia=posortowane[i];
- while(j>=0 && (a=strcmp(posortowane[j].nazwa,posortowane[i].nazwa)>0))
- {
- posortowane[i]=posortowane[j];
- posortowane[j]=kopia;
- j--;
- i--;
- }
- }
- }
- else if(kolejnosc==0)
- {
- for(i=1; i<ilosc; i++)
- {
- int j = i - 1;
- while(j>=0 && (strcmp(posortowane[j].nazwa,posortowane[i].nazwa)<0))
- {
- kopia=posortowane[i];
- posortowane[i]=posortowane[j];
- posortowane[j]=kopia;
- j--;
- i--;
- }
- }
- }
- break;
- case 1:
- if(kolejnosc==1)
- {
- for(i=1; i<ilosc; i++)
- {
- int j = i - 1;
- while(j>=0 && (posortowane[j].szerokosc>posortowane[i].szerokosc))
- {
- kopia=posortowane[i];
- posortowane[i]=posortowane[j];
- posortowane[j]=kopia;
- j--;
- i--;
- }
- }
- }
- else if (kolejnosc==0)
- {
- for(i=1; i<ilosc; i++)
- {
- int j = i - 1;
- while(j>=0 && (posortowane[j].szerokosc<posortowane[i].szerokosc))
- {
- kopia=posortowane[i];
- posortowane[i]=posortowane[j];
- posortowane[j]=kopia;
- j--;
- i--;
- }
- }
- }
- break;
- case 2:
- if(kolejnosc==1)
- {
- for(i=1; i<ilosc; i++)
- {
- int j = i - 1;
- while(j>=0 && (posortowane[j].jakosc>posortowane[i].jakosc))
- {
- kopia=posortowane[i];
- posortowane[i]=posortowane[j];
- posortowane[j]=kopia;
- j--;
- i--;
- }
- }
- }
- else if (kolejnosc==0)
- {
- for(i=1; i<ilosc; i++)
- {
- int j = i - 1;
- while(j>=0 && (posortowane[j].jakosc<posortowane[i].jakosc))
- {
- kopia=posortowane[i];
- posortowane[i]=posortowane[j];
- posortowane[j]=kopia;
- j--;
- i--;
- }
- }
- }
- break;
- }
- }
- int main()
- { int i=0;
- int b,d;
- char a;
- struct obraz pliki[max];
- do
- {
- printf("Co mam zrobic?\n");
- printf("[0]Dodaj do bazy\n");
- printf("[1]Sortowanie po polu\n");
- printf("[2] Wyswietlic cala baze\n");
- printf("[3]Zakoncz program \n");
- scanf("%d",&a);
- if(a>=0&&a<=3)
- {
- switch(a)
- {
- case 0:
- wpisywanie(&pliki,&i);
- break;
- case 1:
- printf("Po jakim polu chcesz sortowac?\n[0]nazwa\n[1]szerokosc\n[2]jakosc\n");
- scanf("%d",&b);
- printf("malejaco czy rosnaco\n[0]malejaco\n[1]rosnaco\n");
- scanf("%d",&d);
- sortuj(&pliki,b,d,i);
- wypisywanie(pliki,i);
- break;
- case 2:
- wypisywanie(&pliki,i);
- break;
- }
- }
- else
- continue;
- }
- while(a!=3);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement