[quote="slonic~tonic"]moze pomoc?!
kaj ne valja u ovoj funkciji ??
Zadatak 7.1.21. Napiˇsite funkciju deleteNeg() koja kao argument uzima pointer na
poˇcetak liste razlomaka (definiranih kao u zadatku 7.1.17) i iz nje briˇse sve negativne
razlomke.
Podsjetnik: Lista nije ni na koji naˇcin “uredena”, pa negativni mogu biti i brojnici i
nazivnici!
[code:1]razlomak *deleteNeg (razlomak *first) {
razlomak *pom, *del;
while(first && ((first->next->br<0 && first->next->naz>0)
|| (first->next->br<0 && first->next->naz>0))) {
del = first->next;
first->next = del->next;
free(del);
}
if(first==NULL) return NULL;
pom = first;
while(pom->next) {
if((pom->next->br<0 && pom->next->naz>0) || (pom->next->br>0 && pom->next->naz<0)) {
del = pom->next;
pom->next = del->next;
free(del);
}
else pom = pom->next;
}
return first;
}[/code:1][/quote]
Krivo sam bio napisao...gledaj ko da ovog nema
Upravo sam isprobao, i meni radi normalno osim kada stavim da je prvi negativan onda ga ne obrise, a razlog tome je što si ti stavila da u onoj prvoj while petlji kreces od drugoga, prvi zapravo nikad niti ne provjeravas da li je negativan, vec samo da nije null.
Sad neznam na šta misliš da je tebi tu krivo? Ako ti ne radi uopce, onda je problem do punjenja liste, ili oslobadjanja, a ako ti radi kao i meni onda je jasno di je greska.
slonic~tonic (napisa): | moze pomoc?!
kaj ne valja u ovoj funkciji ??
Zadatak 7.1.21. Napiˇsite funkciju deleteNeg() koja kao argument uzima pointer na
poˇcetak liste razlomaka (definiranih kao u zadatku 7.1.17) i iz nje briˇse sve negativne
razlomke.
Podsjetnik: Lista nije ni na koji naˇcin “uredena”, pa negativni mogu biti i brojnici i
nazivnici!
Kod: | razlomak *deleteNeg (razlomak *first) {
razlomak *pom, *del;
while(first && ((first->next->br<0 && first->next->naz>0)
|| (first->next->br<0 && first->next->naz>0))) {
del = first->next;
first->next = del->next;
free(del);
}
if(first==NULL) return NULL;
pom = first;
while(pom->next) {
if((pom->next->br<0 && pom->next->naz>0) || (pom->next->br>0 && pom->next->naz<0)) {
del = pom->next;
pom->next = del->next;
free(del);
}
else pom = pom->next;
}
return first;
} |
|
Krivo sam bio napisao...gledaj ko da ovog nema
Upravo sam isprobao, i meni radi normalno osim kada stavim da je prvi negativan onda ga ne obrise, a razlog tome je što si ti stavila da u onoj prvoj while petlji kreces od drugoga, prvi zapravo nikad niti ne provjeravas da li je negativan, vec samo da nije null.
Sad neznam na šta misliš da je tebi tu krivo? Ako ti ne radi uopce, onda je problem do punjenja liste, ili oslobadjanja, a ako ti radi kao i meni onda je jasno di je greska.
|