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

Odpowiedz Nowy wątek
2006-12-18 00:44
tommmm
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...

Pozostało 580 znaków

2006-12-18 01:14
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;
}

Pozostało 580 znaków

2006-12-18 21:41
tommmm
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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