sortowanie ułamków w postaci stryktury (konwersja typów)

0

witam na poczatku inforumje dopiero zaczynam zabawe z programowaniem.
mam zrobic program do sortowania tablicy ulamkow zapisanych w postaci struktury:

#include <stdio.h>
#include <conio.h>
#define N 10

struct ulamek{
int licz;
unsigned mian;
}

int wiekszy(struct ulamek u1, struct ulamek u2)
{
if(u1.licz * u2.mian > u2.licz * u1.mian) return 1;
else return 0;
}

void sortowanie (struct ulamek *a, int n)
{
struct ulamek *x;
int ilosc;
int k;

for(ilosc=0;ilosc<n; ++ilosc)
{
while(k<n)
{
if(wiekszy (*(a+k), *a(k+1)) >1)
{
x=(a+k);
(a+k)=(a+k+1);
*(a+k)=*x;
}
++k;
}
}
}

void pisz(struct ulamek *u)
{
printf("%d/%u ", (*u).licz, (*u).mian);
}

int main()
{
struct ulamek ulamki[N]={{24,7}, {15,2}, {5,7}, {12,7}, {8,3}, {4,3}, {1,2}, {11,15}, {1,5}, {3,8}};
int k;
sortowanie(ulamki, N);
for(k=0; k<N; ++k)pisz(&ulamki[k]);

getch();
return 0;
}

niestety kompilator mi zwraca blad przy funkcji

int wiekszy(struct ulamek u1, struct ulamek u2)
{
if(u1.licz * u2.mian > u2.licz * u1.mian) return 1;
else return 0;
}

program mial sortowac przez wybieranie funkcja "wiekszy" miala zwraca 1 gdy ulamek poprzedzajacy byl wiekszy od nastepnego, 0 gdy nastepny jest wiekszy od poprzedniogo. a nastepnie funkcja sorotwanie miala sortowac przez wybieranie tablice "ulamki".

mysle ze jak tylko przebrnol bym przez ten proboblem w funkcji wiekszy to z reszta bym sobie juz poradzil...

0
#include <stdio.h>
#include <conio.h>
#define N 10

struct ulamek{
              int licz;
              unsigned mian;
              };

int wiekszy(struct ulamek *u1, struct ulamek *u2)
        {
        if(u1->licz * u2->mian > u2->licz * u1->mian) return 1;
        else return 0;
        }

void sortowanie (struct ulamek *a, int n)
{
struct ulamek x;
int i, j, max;

for(i = 0; i < n - 1; i++)
  {
    max = i;
    for (j = i + 1; j < n; j ++)
      if(wiekszy(a + j, a + max))
        max = j;
    if(max != i)
    {
       x = a[max];
       a[max] = a[i];
       a[i] = x;
    }
  }
}

void pisz(struct ulamek *u)
        {
        printf("%d/%u ", (*u).licz, (*u).mian);
        }

int main()
{
struct ulamek ulamki[N]={{24,7}, {15,2}, {5,7}, {12,7}, {8,3}, {4,3}, {1,2}, {11,15}, {1,5}, {3,8}};
int k;
sortowanie(ulamki, N);
for(k=0; k<N; ++k)pisz(&ulamki[k]);

getch();
return 0;
}
0

wielkie dzieki, dokonalem drobnych modyfikacji, to znaczy poprawilem bledy u siebie, jeszcze raz wielkie dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1