listy/struktura/funkcja

0

hejka mam mały problemik przy funkcji w listach.
To jest moja struktura :

typedef struct kalendarz
{
int identyfikator;
int dzien;
int miesiac;
int rok;
int godzinap;
int minutap;
int godzinak;
int minutak;
char miejsce[ROZMIAR] ;
char opis[ROZMIAR];
char priorytet[ROZMIAR];
char waznosc[ROZMIAR];
struct kalendarz *next;
}kalendarz;

A to funkcja, która ma zrobić by spotkania nie nakładały się na siebie, nie mogą też kończyć się i zaczynać w tym samym czasie. I nie wiem czemu ale nie chodzi tak jak powinna. Widzicie może gdzie jest błąd?

int sprawdzenie(kalendarz *glowny, int id, int dzi, int mie, int hp, int mp, int hk, int mk)
{
kalendarz *biezacy=glowny;
int czy =0;
while(biezacy!=NULL)
{
if (biezacy->identyfikator==id)
{
if (biezacy->miesiac==mie)
{
if (biezacy->dzien==dzi)
{
if (biezacy->godzinap>=hp && biezacy->godzinap<=hk)
{
if (biezacy->minutap>=mp && biezacy->minutap<=mk)
{
if (biezacy->godzinak>=hp && biezacy->godzinak<=hk)
{
if (biezacy->minutak>=mp && biezacy->minutak<=mk)
return 0;
}
}}}
}
}biezacy=biezacy->next;
}
return 1;
0

To jak inaczej mogę to sprawdzić? Mam jeszcze coś takiego:
int sprawdzenie(kalendarz *glowny, int id, int dzi, int mie, int hp, int mp, int hk, int mk)
{
kalendarz *biezacy=glowny;
int czy =0;
while(biezacy!=NULL)
{
if (biezacy->identyfikator==id)
{ if (biezacy->miesiac==mie)
{ if (biezacy->dzien==dzi)
{ if (biezacy->godzinap>hp && biezacy->godzinap<hk)
{ if (biezacy->minutap>=mp || biezacy->minutak<=mk)
return 0;
}
}
}
}
biezacy=biezacy->next;
}
return 1;
}
ale też nie chodzi. już nie mam pomysłu jak zrobić by działało poprawnie

0

Nie chce mi się dogłębnie tego analizować, bo bardzo to zagmatwałaś.
A gdybyś tak zgrupowała te wszystkie pola dotyczące daty i utworzyła nową strukturę o nazwie data? Funkcja sprawdzenie mogłaby wtedy przyjmować tylko 2 parametry.

0

Zrob sobie strukture osobna od daty i osobna od czasu. Data - dzien, miesiac, rok Czas - godzina minuta. Bedzie to czytelniejsze i latwiejsze do ogarniecia dla nas ja i dla Ciebie.

0

tylko, że już mam praktycznie cały projekt zrobiony i żeby wszędzie pozmieniać to to pewnie byłoby dużo roboty, a tylko ta funkcja nie chce działać, w innym miejscu mam podobnie zapisaną i działa a w tym sprawdzeniu nie działa

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