Hejka. Mam pewne zadanie z listy i nie mam pojęcia, czy poprawnie je rozwiązałam.
Zadanie:
Informacje o zakupach zrealizowanych przez klientów umieszczono na dynamicznej liście dwukierunkowej o elementach zgodnych z definicją:
typedef struct
{
int nr_klienta;
float wartosc;
int nr_kasy;
struct tKlient *next;
}tKlient;
typedef tKlient *wKlient;
wKlient poczatek, koniec;
Zakładając, że lista jest posortowana według wartości zakupionych towarów, napisać funkcję realizującą następujące zadanie:
- Wyznaczenie łącznej kwoty wydanej przez klientów na towary o wartości 100 zł.
Poszukiwanie powinno trwać tylko do momentu, w którym będzie można mieć pewność, że dalsze sprawdzanie jest zbędne. W przypadku braku elementów spełniających kryterium należy wyświetlić stosowny komunikat.
Próba napisania:
float Wyszukaj(tKlient *P)
{
float wartosc = 0;
int suma = 0;
while(P!=NULL && P->wartosc == 100)
{
suma+=P->wartosc;
}
return suma;
}
Nie mam pojęcia, czy takie zadanie jest poprawnie wykonane (ważne, żeby tylko było poprawnie na kartce) :P
Byłabym wdzięczna za weryfikację ewentualnych błędów.
PS. Zwykle w zadaniach z listą miałam wyznaczyć pewną ilość elementów bądź średnią z jakiegoś przedziału (np. 50 do 150), a wtedy stosowało się:
while(P!=NULL && P->wartosc <=150)
{
if(P->wartosc<=50)
{//reszta operacji
}
//(...)
}