Advertisement
Guest User

Untitled

a guest
May 26th, 2017
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
DIV 2.22 KB | None | 0 0
  1. void buduj(INT rozmiar)
  2. {
  3.     INT i;
  4.     FOR (i=rozmiar; i>1; i--)
  5.     {
  6.             INT zamiana=0;
  7.             INT j=0;
  8.             FOR (j=i/2; j>0; j--)
  9.             {
  10.                 IF (2*j==rozmiar || 2*j==rozmiar+1) //jeden potomek
  11.                 {
  12.                     {
  13.                         INT ktory=porownaj(tablica[2*j], tablica[j]);
  14.                         IF (ktory==1)
  15.                         {
  16.                             zamien(2*j, j);
  17.                             zamiana=1;
  18.                         }
  19.                     }
  20.                 }
  21.                 ELSE IF (2*j<rozmiar)
  22.                 {
  23.                     INT ktory=porownaj(tablica[2*j], tablica[j]);
  24.                     IF (ktory<2) //lewy syn wiekszy, teraz z prawym
  25.                     {
  26.                         ktory=porownaj(tablica[2*j], tablica[2*j+1]);
  27.                             IF (ktory<2) //lewy >=
  28.                             {
  29.                                 zamien(2*j, j);
  30.                                 zamiana=1;
  31.                             }
  32.                             ELSE IF (ktory==2) //prawy wiekszy
  33.                             {
  34.                                 zamien(2*j+1, j);
  35.                                 zamiana=1;
  36.                             }
  37.                     }
  38.                     ELSE IF (ktory==2) //lewy mniejszy, a moze prawy?
  39.                     {
  40.                             ktory=porownaj(tablica[2*j+1], tablica[j]);
  41.                             IF (ktory==1)
  42.                             {
  43.                                 zamien(2*j+1, j);
  44.                                 zamiana=1;
  45.                             }
  46.                     }
  47.  
  48.                 }
  49.             }
  50.             i+=zamiana;
  51.             IF (zamiana==0)
  52.                 i=0;
  53.     }
  54.         FOR(i=1; i<rozmiar+1; i++)
  55.         {
  56.             printf("%llu+%llu/%llu ",tablica[i]->calkowita,tablica[i]->licznik,tablica[i]->mianownik);
  57.         }
  58.         printf("\n");
  59.     //wpisanie poprawnej wartosci
  60.         STRUCT liczba *nowy;
  61.         nowy=malloc (SIZEOF(STRUCT liczba));
  62.         nowy->licznik=0;
  63.         nowy->mianownik=0;
  64.         nowy->calkowita=0;
  65.       posortowane[rozmiar]=tablica[1];
  66.       zamien(1,rozmiar);
  67.       tablica[rozmiar]=nowy;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement