Mam taki kod uzupełniony podczas wykonywania zadania domowego: zostały mi 2 funkcje do uzupełnienia:
ZAD 5: Przeanalizuj funkcję: "SzukajOsobe()"
Następnie uzupełnij funkcję: PERSON *FindByName(char *first, char *last), która będzie zwracała pozycję na liście osoby o przekazanym imieniu i nazwisku. Jeżeli osoba nie istnieje , to funkcja ma zwrócić wartość zero (NULL).
ZAD 6: Przeanalizuj funkcję: "UsunOsobe()". Następnie uzupełnij funkcję: void Delete(PERSON *element), tak aby kasowała wskazany element listy. Należy rozważyć dwa przypadki, jeżeli jest usuwany pierwszy element listy i dowolny inny.
Header.h: http://wklej.org/id/1596508/
Source.cpp: http://wklej.org/id/1596507/
Jak mają wyglądać te funkcje? Zwracała pozycję na liście osoby, czyli mam skombinować licznik i zaczynając od początku zliczać? Jak usuwać wskazane elementy i pierwszy?
Jak uzupełnić te szukanie osoby, bo obecnie nie działa, nie wiem dlaczego biorę na początku pierwszą osobę, porównuje, zaś biorę kolejne jeśli nie są sobie równe przechodzę do następnych, jeśli w liście jej nie ma powinno zwracać NULL, a program crashuje.
Kod wygląda tak, ale nie działa, bo zawsze jest zwracany 1 element:
PERSON *FindByName(char *first, char* last)
{
//uzupelnic - zadanie 5
int licznik = 1;
GetFirst();
while (strcmp(current->FirstName,first) == 1 && strcmp(current->LastName, last) == 1 && current->Next!=NULL);
{
GetNext();
licznik++;
}
if (current->Next == NULL) return NULL;
else return current;
}
Wiem, że często mi pomagacie, ale moglibyście mi pomóc tak szybciej, bo mam jutro kolokwium i będę walczył o przepis z egzaminu i chcę już zająć się tylko liczeniem. A zadanie muszę wysłać wykładowcy dziś.