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...